我正在尝试编写一个 shell 脚本,用户输入他们想要重命名的文件作为第一个变量,然后输入他们希望新名称作为第二个变量的名称。程序将给出的唯一输出是 mv 缺少文件操作数。我已经碰壁了,现在没有东西可以尝试了。我尝试使用文件的绝对路径,但没有帮助。谷歌对我一无所获。
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.