Я пытаюсь написать сценарий оболочки, в котором пользователь вводит, какой файл он хочет переименовать в качестве первой переменной, а затем, что он хочет, чтобы новое имя было для его второй переменной. Единственный вывод, который выдаст программа, это то, что в mv отсутствует операнд файла. Я врезался в стену, и у меня нет возможности попробовать на этом этапе. Я попытался использовать абсолютные пути к файлу, который не помог. Google ничего не нашел для меня.
mv работает как и ожидалось в командной строке, но как только переменные введены, программа начинает работать. Я перепробовал все возможные варианты форматирования ввода.
#!/bin/bash
echo -n "Original filename: "
read $input_filename
echo ""
echo -n "New filename: "
read $output_filename
echo ""
mv -v $input_filename $output_filename
if [ $? == 0 ]
then
echo "Task completed successfully"
else
echo "ERROR: File failed to be renamed. Exiting."
fi
Вывод и связанное содержимое файла.
davevm@davevm-VirtualBox:~/lab10$ ls
helloworld lab10.sh
davevm@davevm-VirtualBox:~/lab10$ ./lab10.sh
Original filename: helloworld
New filename: copy1
mv: missing file operand
Try 'mv --help' for more information.
ERROR: File failed to be renamed. Exiting.