2
ファイルの名前を変更する際に変数を使用しようとしています。しかし、私は、ファイル名の先頭に変数を挿入すると、物事は期待どおりに動作しません。ここでBash:変数が正しく展開されない
はケースだ、私は、ファイル名のテストを持っている:
$ ls
test
と変数 i=1
ファイル名の末尾または途中に変数を追加する場合、それは動作します:
$ mv test test_$i
$ ls
test_1
変数をファイル名の先頭に追加すると機能しません。
$mv test_1 test
$mv test $i_test
mv: missing destination file operand after 'test'
Try 'mv --help' for more information.
さらに悪いことに、ファイル名に拡張子がある場合、ファイルは削除されます。
$ touch test.try
$ ls
test.try
$ mv test.try $i_test.try
$ ls
(nothing!)
誰でもこれを私に説明できますか?それは私が知らないバグか何かですか?
mv test.try ${i}_test.try
かは、二重引用符を使用し、提供します:
、必ず変数を引用します。 'mv test" $ i "_test'を試してみてください – VM17
見つからなかったファイルは' .try'に名前が変更されました。まだそこにあります( 'ls -a'を使って見てください)。 –