Python支持三引号字符串:
'''something'''
Shell仅支持单引号字符串:
'something'
通过使用 四个 引号,
sh将其视为2个空字符串,但Python将前三个视为三引号字符串的开头,并将第四个作为字符串值的一部分。
然后,该行的其余部分由解释为命令
sh,但由Python解释为字符串的一部分。
在
#随后形成尽可能评论
sh而言,但它仍然是一个字符串到Python,有三个结束引号关闭它。
因此,总结一下:
sh
sees: 空字符串(''
) - 空字符串(''
) - 命令(exec python -u -- "$0" ${1+"$@"}) - 注释(# '''
)- Python看到: 三引号括起来的字符串文字(包含字符
'exec python -u -- "$0" ${1+"$@"} #)
因此
sh执行该命令,并
python -u--用脚本名称和其余命令行参数替换自身,Python读取该文件,然后看到一个初始字符串文字,该文字不会随处可见。
因为它是文件中的第一个字符串文字,所以它将被设置为
__main__模块的文档字符串,但这与主脚本无关紧要。



