寫了一些shell腳本,測試也正常辅柴,放在crontab里定時(shí)調(diào)用箩溃,發(fā)現(xiàn)某些語句會(huì)調(diào)用失敗,比如if碌嘀、for涣旨、數(shù)組等等。
首先股冗,需要排除路徑的問題霹陡,crontab -e里是root權(quán)限調(diào)用,寫成~是不識(shí)別的止状,需要寫完整路徑烹棉,有貼子說寫在/etc/crontab里指定用戶就好了。
其次导俘,也是最狗血的峦耘,crontab -e方式默認(rèn)使用的是sh解析,并不是bash旅薄,說是用了什么POSIX標(biāo)準(zhǔn)之類的辅髓,給我的感覺就是你按照百度上找來的教程來寫腳本,在這種解釋器下很可能是無法正常運(yùn)行的……
解決方法1:
按照sh的腳本格式嚴(yán)格來寫腳本少梁,并使用sh xxx.sh來調(diào)用進(jìn)行測試洛口,但是學(xué)習(xí)成本太高,bash對我來說已經(jīng)很復(fù)雜了凯沪,丫還不支持?jǐn)?shù)組……
解決方法2:
crontab -e調(diào)用腳本前第焰,加上bash命令,腳本不用改妨马,順利執(zhí)行~~
解決方法3:
盡量不要用sh挺举,改用python或lua之類的吧~