[英]Python script runs fine from terminal but crashes when run from crontab
[英]I have a bit a of code that has one command that runs fine on the terminal but fails when running from a script
顯示腳本無法在最后一條命令上運行。
在終端中單獨運行時,該命令運行良好。 我嘗試將!...部分放入參數中,使用各種括號和換行符甚至使用完整路徑將其移動。 我對替代解決方案不感興趣-我對為什么該解決方案不能在腳本中特別工作感到興趣。
#!/bin/bash
mkdir alllogs
for i in $(locate *.log); do cp $i alllogs/; done
tar -zcvf alllogs/logs.gz alllogs/*
rm -v alllogs/!('logs.gz')
該腳本從Linux系統收集各種日志,並將其壓縮為單個文件,之后,它會擦除日志副本,而僅保留壓縮文件。 但是,刪除副本的命令在通過腳本運行時失敗,但在終端上可以正常工作。 給出的錯誤是:
./x.sh: line 7: syntax error near unexpected token `('
./x.sh: line 7: `rm -v alllogs/!('logs.gz')'
默認情況下不啟用該形式的模式匹配 。 您需要顯式設置extglob
。
shopt -s extglob
葡萄酒商所說的話,或取代
$(locate *.log)
與
`locate *.log`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.