М.В. работает в интерактивном режиме, но не из сценария - PullRequest
0 голосов
/ 25 октября 2019

Я застрял в этой проблеме последние четыре дня и пытался изменить код как можно больше, но безрезультатно.

Проблема в том, что команда 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
...