当我尝试在tcl中运行此命令时:
tar -zcvf input.scs__pmos.sdevv.tar.gz input.scs*
我收到了这个信息:
/bin/tar: input.scs*: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors
child process exited abnormally
while executing
然而,当我在Perl / shell中运行时,我会得到以下结果:
perl -e 'system("tar -zcvf input.scs__pmos.sdevv.tar.gz input.scs*")'
我理解的是:
input.scs
input.scs~
为什么Tcl会造成这种情况?在Linux Shell中运行会得到相同的结果。
我使用的是Tcl 8.5版本。
system
一起使用时,Perl将生成一个shell(我认为是/bin/sh)并将字符串发送到shell。然后shell负责扩展glob模式。Tcl的等效命令是exec /bin/sh -c "tar -zcvf input.scs__pmos.sdevv.tar.gz input.scs*"
。 - glenn jackman