我已经在Centos系统上继承了许多以第一行#:
开头的shell脚本。
$ ./test.sh
这是其中一个工作脚本的示例:#:
DATE=`date +%D::%H:%M`
LOG=/home/alert/bin/log/test.log
echo ${DATE} >> ${LOG}
exit
#:是什么意思?
[我知道'正常'的shebang是什么意思,例如#!/ bin / sh
我看了遍整个互联网,发现堆栈溢出,没有找到答案。我猜这意味着“使用您的外壳”? (即#!$ SHELL)?
好问题。可能是旧的“嘿,这是一个shell脚本!”通过#!
的解释器支持之前的语法被添加到exec
系统调用中:以#:
开头的脚本-实际上,可能只是#
或:
可以工作-外壳本身会识别出这种语法并直接执行而不是调用exec
。不过,我无法想到在现代系统上这样做的原因。
这是标记脚本的开头。