shell
2012-02-07 200 views 2 likes 
2

我寫了一個bash shell腳本來重命名文件,Shell腳本錯誤 - 不能執行該命令

#!/bin/bash 

#renaming the files 

for filename in 'find . -name "PostStackTemplate*"' 
do 
    echo $filename 
    newName='echo $filename | sed -e "s/TestVersion/Version2/g" $filename' 
    mv $filename $newName 
done 

當我執行這個腳本,我得到的輸出作爲

find . -name "PostStackTemplate*" 
mv: invalid option -- n 
Try `mv --help' for more information. 

難道我做錯了什麼。

+1

如果您實際使用單引號而不是反引號,那就是您的問題。你想要:在$(find ....)和newName = $(echo ...)中的文件名 – 2012-02-08 00:03:47

回答

2

我想你使用command substitutionsed命令的輸出分配給newName變量:

newName=$(echo $filename | sed -e "s/TestVersion/Version2/g" $filename) 

否則,newName將包含被分配只是字符串。

相關問題