5

次のファイルがあります。

~/tmp/testbash$ l
file 1.test  move.sh*

どこにmove.shある:

#!/bin/bash
#-x

FILENAME='file\ .test'
echo $FILENAME
echo joo
mv $FILENAME test.test

を実行する./move.shと、次の出力とエラーが表示されます。

file\ .test
joo
mv: target `test.test' is not a directory

問題は、コマンドを次のように実行することです。

mv file .test test.test

次のようではありません。

mv file\ .test test.test

どうすればこれを修正できますか?

4

2 に答える 2

8

変数に埋め込みスペースが含まれている場合は、変数を二重引用符 (") で囲みます。

FILENAME='file .test'
mv "$FILENAME" test.test
于 2012-06-01T08:50:24.733 に答える
4

変数値内にスペースがある場合は、二重引用符を使用します。

FILENAME='file\ .test'
echo "$FILENAME"
echo joo
mv "$FILENAME" test.test
于 2012-06-01T08:50:01.303 に答える