Linux执行权限

-rw-r--r--. 1 myusername developers 169 May 17 09:01 build.sh 

为什么我可以从命令行执行build.sh脚本,如果它没有执行权限,但是当crontab试图执行它,它会失败?

你不能从命令行执行,因为它没有执行权限。

你可以做什么,是从命令行来源,

 . ./build.sh 

这会导致当前shell执行文件中的命令,就像在命令行上input一样。

你不能从cron做到这一点,所以你需要给脚本执行权限( chmod 744 build.sh )。

您还可以通过执行一个shell并将脚本传递给它来“运行”脚本,例如,

 sh build.sh 

这是因为您正在执行sh (具有+ x权限),并且正在读取文件build.sh并在退出之前运行命令,就像在命令行上input一样。