程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用??

开发过程中遇到为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?的解决方法建议,希望对你解决为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?有所启发或帮助;

Python支持三引号字符串:

'''something'''

SHell仅支持单引号字符串:

'something'

通过使四个@H_674_16@ 引号,sh将其视为2个空字符串,但Python将前三个视为三引号字符串的开头,并将第四个作为字符串值的一部分。

然后,该行的其余部分由解释为命令sh,但由Python解释为字符串的一部分。

#随后形成尽可能评论sh而言,但它仍然是一个字符串到Python,有三个结束引号关闭它。

因此,总结一下:

  • shsees: 空字符串('')@H_674_16@ - 空字符串('')@H_674_16@ - 命令(exec python -u -- "$0" ${1+"$@"})@H_674_16@ - 注释(# ''')@H_674_16@
  • Python看到: 三引号括起来的字符串文字(包含字符'exec python -u -- "$0" ${1+"$@"} #)@H_674_16@

因此sh执行该命令,并python -u --用脚本名称和其余命令行参数替换自身,Python读取该文件,然后看到一个初始字符串文字,该文字不会随处可见。

因为它是文件中的第一个字符串文字,所以它将被设置为__main__模块的文档字符串,但这与主脚本无关紧要。

解决方法

我正在尝试了解此问题的答案之一:

无法使用“#!/ usr / bin / env
python”将参数传递给python

#!/bin/sh
''''exec python -u -- "$0" ${1+"$@"} # '''

这很好用,但是我不明白为什么它在该行的开头使用四个刻度而不是三个刻度。

另外,为什么哈希值接近该字符串的末尾?

大佬总结

以上是大佬教程为你收集整理的为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?全部内容,希望文章能够帮你解决为什么这个带有shebang#!/ bin / sh和exec python的代码片段在4个单引号内起作用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。