2012-06-18 55 views
0

我想將命令的輸出設置爲腳本中的變量。我搜索了一整天,它看起來像我有權利的命令。但每次運行我的腳本時,它都會運行該命令,而不是隻將它分配給一個變量而不運行它。如何將重命名命令的結果分配給變量?

這裏是腳本的相關部分:

ffname=$(rename 's/_1080p_12000//' *.*) 
echo $ffname 

我需要使用ffname作爲變量在腳本中的另一部分,而不運行命令..但它似乎沒有想工作。任何人有任何建議?

+0

ubuntu上的'rename'不輸出任何內容,除非使用-v。最好避免重命名。 – jordanm

回答

1

您可以將-n(無行爲)選項添加到rename以獲取輸出。

ffnames=($(rename -n 's/_1080p_12000//' *.* | awk '{print $1,$NF}')) 

結果中包含多個項目。所以你需要一個數組來保存它們。

然後做沒有-n選項的真實重命名。

0

如果您使用Bash,則可以使用shell parameter expansion替換運算符來填充已填充的變量,以替換要刪除的文件名部分。例如:修改後的值,如果你喜歡

$ ffname=foo_1080p_12000.bar 
$ echo "${ffname/_1080p_12000}" 
foo.bar 

但是,它仍將由你來執行實際的MV或重命名命令,或重新分配回ffname