Избавиться от трейлинга &
с. &
заставляет команды работать в фоновом режиме. Поведение по умолчанию, при котором они запускаются на переднем плане, соответствует желаемому.
cmd1='/usr/bin/wget http://mysite/folder/'
$cmd1 > "/var/www/html/log/data.log" 2>&1
cmd2='/usr/bin/indexer --rotate --all'
$cmd2 > "/var/www/html/log/$(date +%Y-%m-%d_%H:%M)" 2>&1
Примечание: вы не должны хранить команды в переменных. Используйте функции. Также нет причин выписывать /usr/bin
.
cmd1() { wget http://mysite/folder/; }
cmd1 > /var/www/html/log/data.log 2>&1
cmd2() { indexer --rotate --all; }
cmd2 > /var/www/html/log/"$(date +%Y-%m-%d_%H:%M)" 2>&1
Теперь вы можете хранить всю команду, перенаправления и все в функциях; Вы, возможно, заметили, что не можете сделать это при использовании переменных.
cmd1() { wget http://mysite/folder/ > /var/www/html/log/data.log 2>&1; }
cmd2() { indexer --rotate --all > /var/www/html/log/"$(date +%Y-%m-%d_%H:%M)" 2>&1; }
cmd1
cmd2