当前位置:  开发笔记 > 编程语言 > 正文

在Tcl中使用名称模式的tar不起作用

如何解决《在Tcl中使用名称模式的tar不起作用》经验,为你挑选了1个好方法。

当我尝试在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



1> Donal Fellow..:

TCL并没有扩展名的水珠(在*默认情况下).这是设计的.如果你想扩展,你必须明确地要求它(记住扩展产生一个文件名列表,所以我们需要{*}[…]而不是只[…]):

exec tar -zcvf input.scs__pmos.sdevv.tar.gz {*}[glob input.scs*]

总是添加的是好的风格exec; 只有在交互模式下才能完全放弃,这只是一个方便的功能.你的脚本需要它,所以现在养成良好的习惯.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有