无法在Shell脚本中重命名文件

时间:2012-11-14 17:51:49

标签: linux shell

在这段代码中,我有什么问题吗?

OLD_NAME="$FILE"
NEW_FILE=`${OLD_NAME | tr ' ' '_'}`
/bin/mv "$OLD_NAME" "$NEW_FILE"

我想要的只是重命名提供的文件并用下划线替换所有空格。 我收到bad substitution错误消息。我似乎无法重命名工作: - (

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

您需要将OLD_NAME回显到tr:

OLD_NAME="$FILE"
NEW_FILE="$( echo "$OLD_NAME" | tr ' ' '_' )"
/bin/mv "$OLD_NAME" "$NEW_FILE"

但也许你更愿意:

NEW_FILE=${OLD_NAME// /_}

答案 1 :(得分:0)

您可以在没有管道的情况下更简单/可读地进行替换,tr使用此代码:

NEW_FILE=${OLD_NAME// /_}

有关详细信息,请参阅here