mv可以交互工作,但不能通过脚本工作

时间:2019-10-25 01:01:06

标签: bash shell

过去四天来,我一直在这个问题上停留,并尝试尽可能多地修改代码而无济于事。

问题是我的脚本的mv命令无效。我尝试用cp代替它,但没有任何改变。

id="201910242020"
touch -t "$year$month$day$hr$min" /tmp/wakeup_$id.call
mv "/tmp/wakeup_$id.call" /var/spool/asterisk/outgoing/
cat /var/spool/asterisk/outgoing/wakeup_$id.call

假设$year$month$day$hr$min为“ 201910242020”

如果我从脚本中提取了完全相同的代码行,并将其粘贴到终端中,则它将起作用。文件被移动。

当它作为脚本的一部分运行时,除mv之外的所有行均会执行,无论出于何种原因该行均不起作用,这随后会导致cat命令引发错误,提示文件不存在。它不存在,因为它从未移动过...

为什么会这样?我以交互方式重新创建了脚本中使用的$ id变量,并粘贴了同一行代码,并且它可以交互地工作。我不知道为什么在编写脚本时不会这样做。

当我在脚本中添加set -x并使用mv的路径时,我得到:

/home/com/noc.sh: line 832: /home/com/.bash_profile: No such file or directory
+ /usr/bin/mv -v /tmp/wakeup_5644201910251537.call /var/spool/asterisk/outgoing/
/home/com/noc.sh: line 842: /usr/bin/mv: No such file or directory

0 个答案:

没有答案