通过crontab -e调用shell脚本的诡异问题

写了一些shell脚本,测试也正常,放在crontab里定时调用,发现某些语句会调用失败,比如if、for、数组等等。

首先,需要排除路径的问题,crontab -e里是root权限调用,写成~是不识别的,需要写完整路径,有贴子说写在/etc/crontab里指定用户就好了。

其次,也是最狗血的,crontab -e方式默认使用的是sh解析,并不是bash,说是用了什么POSIX标准之类的,给我的感觉就是你按照百度上找来的教程来写脚本,在这种解释器下很可能是无法正常运行的……

解决方法1:
按照sh的脚本格式严格来写脚本,并使用sh xxx.sh来调用进行测试,但是学习成本太高,bash对我来说已经很复杂了,丫还不支持数组……

解决方法2:
crontab -e调用脚本前,加上bash命令,脚本不用改,顺利执行~~

解决方法3:
尽量不要用sh,改用python或lua之类的吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容