2013-02-22 112 views
0

我想获取参数替换工作在我的bash脚本中...我知道我已经得到了这一切错误...我试图创建一个脚本,将重命名文件的一部分。Bash脚本 - 需要帮助获得匹配和替换工作

#!/bin/bash 
for i in *.hpp; do mv -v "$3 ${$3/$1/$2}" ; done 

我得到的错误是:

line 2: $3 ${$3/$1/$2}: bad substitution 
+1

你完全不清楚你想要应用于每个文件名的转换。编辑您的帖子以包含“之前”和“之后”文件名的示例(或几个示例)。 – 2013-02-22 02:41:22

+0

而'i'变量永远不会被调用! – 2013-02-22 02:41:54

+0

面包屑...它应该是 我在* .hpp;做mv -v“$ i $ {i/$ 1/$ 2}”;做 – Xofo 2013-02-22 02:50:41

回答

1

${$3}将尝试进行插值${"CONTENTS OF $3"}到一个变量。这更可能是你想要${3}。更有可能你想要${i}

+0

是的......我看到......我的一系列错误......。谢谢。 – Xofo 2013-02-22 02:57:25

+0

@Xofo如果你已经安装了'rename',你可以使用'rename's/ABC/CDG /'* .hpp' – 2013-02-22 03:02:29

+0

重命名有不同的实现,请注意。这是为perl one – 2013-02-22 03:08:44