【发布时间】:2014-09-08 08:18:48
【问题描述】:
我想将 *.DIF 文件重命名为 *.SUC 文件 但以下脚本给出“sh:bad substitution”错误 我不能使用“重命名”,因为我的操作系统不是 Linux。
$com="for i in *.DIF; do mv \$i \${i/DIF/SUC}; done;";
print $com."\n";
print `$com`;
输出:
for i in *.DIF; do mv $i ${i/DIF/SUC}; done;
sh: bad substitution
【问题讨论】:
-
在执行“for i in *.DIF; do mv $i ${i/DIF/SUC}; done;”时在 shell 上工作正常。
-
为什么不直接使用 perl
rename函数? -
为什么你的脚本有
SUC,而输出却有DIFFF? -
反引号表示
run with sh。但真的。不要这样做。交叉污染脚本语言是为自己构建一些可怕的错误和无法维护的代码的绝佳方式。坚持使用一种语言 - perl 或 shell,不管哪种。