Я пытаюсь использовать переменную при переименовании файла. Однако, когда я вставляю переменную в начало имени файла, все работает не так, как ожидалось.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 '$ i" _test' – VM17
Обратите внимание, что отсутствующий файл был переименован в '.try' - он все еще существует (используйте' ls -a', чтобы увидеть его). –