TCL exec命令错误


bind pub "-|-" !tests pub:tests
proc pub:tests { nick host handle channel arg } {
set size [ exec ls -l /home/archiv/pics/*.r* | wc -l ]
putnow "PRIVMSG $channel :size $size"
}

我有这个错误

[09:36:19] Tcl error: 0
ls: cannot access '/home/archiv/pics/*.r*': No such file or directory

当我在bash中测试这个时

ls -l /home/archiv/pics/*.r* |wc -l
result:
71

如何使用.r(通配符(?怎么了?dir正确,acces正确。thx来帮忙。

问候

您感觉正确:Tcl的[exec]不提供类似bash的通配符扩展。Tcl可以使用它的[glob][llength]命令更容易地为您做到这一点,而无需[exec]退出:

set size [llength [glob "/home/archiv/pics/*.r*"]]

如果您仍然更喜欢其他shell而不是Tcl(例如bash(,那么您必须将[exec]显式地放入shell中,例如:

set size [exec bash -c "ls -l /home/archiv/pics/*.r* | wc -l"]

相关内容

  • 没有找到相关文章

最新更新