我尝试编写shell脚本以根据用户响应复制文件。我想要做的一个例子:
#!/bin/bash
echo "What is the name of the user?: "
read RESPONSE
cp /home/$RESPONSE/file.txt /home/$RESPONSE/backup/file_backup.txt
但是,我的复制命令似乎没有正确接受读取变量。 我做错了什么?
答案 0 :(得分:1)
我想出了这个问题。我之间有一些命令,然后有第二次读取RESPONSE命令,这是不需要的。换句话说,作为一个例子,我有这个:
#!/bin/bash
echo "What is the name of the user?: "
read RESPONSE
rsync -a /home/$RESPONSE /backup
read RESPONSE
cp /home/$RESPONSE/file.txt /home/$RESPONSE/backup/file_backup.txt
另外,@ GeorgeVasiliou说得对,我还需要将它包含在引号中。有用的是:
#!/bin/bash
echo "What is the name of the user?: "
read response
rsync -a "/home/$response/" /backup
cp "/home/$response/file.txt" "/home/$response/backup/file_backup.txt"
答案 1 :(得分:1)
以下代码可实现您的目标。它还检查用户是否存在,以及用户是否在尝试保存文件之前创建了/ backup /文件夹(如果用户不存在,那么/ home / user / ...也应该不存在并且脚本会失败)。
private countdown: Countdown = {days: null, hours: null, minutes: null, seconds: null};
修改:编辑了上面的代码以添加一些改进。