0

このコードで間違っていることはありますか?

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

提供されたファイルの名前を変更し、すべてのスペースをアンダースコアに置き換えるだけです。bad substitutionエラーメッセージが表示されます。名前の変更を機能させることができないようです:-(

どんな助けでも大歓迎です。

4

2 に答える 2

4

OLD_NAME を tr にエコーする必要があります。

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

しかし、おそらくあなたは好むでしょう:

NEW_FILE=${OLD_NAME// /_}
于 2012-11-14T17:54:36.140 に答える
0

trパイプを使用せずにこれを使用すると、より簡単に/読みやすく置換を行うことができます。

NEW_FILE=${OLD_NAME// /_}

詳しくはこちらをご覧ください。

于 2012-11-14T17:58:04.097 に答える