哈希冒号(#:)作为Shell脚本的第一行是什么意思?

问题描述 投票:1回答:2

我已经在Centos系统上继承了许多以第一行#:开头的shell脚本。

  • 在线上没有其他内容。
  • 如果从命令行运行,脚本将正确执行。前$ ./test.sh这是其中一个工作脚本的示例:
#:

DATE=`date +%D::%H:%M`
LOG=/home/alert/bin/log/test.log

echo ${DATE} >> ${LOG}

exit

#:是什么意思?

[我知道'正常'的shebang是什么意思,例如#!/ bin / sh

我看了遍整个互联网,发现堆栈溢出,没有找到答案。我猜这意味着“使用您的外壳”? (即#!$ SHELL)?

bash shell shebang
2个回答
0
投票

好问题。可能是旧的“嘿,这是一个shell脚本!”通过#!的解释器支持之前的语法被添加到exec系统调用中:以#:开头的脚本-实际上,可能只是#:可以工作-外壳本身会识别出这种语法并直接执行而不是调用exec。不过,我无法想到在现代系统上这样做的原因。


-3
投票

这是标记脚本的开头。

© www.soinside.com 2019 - 2024. All rights reserved.