gpt4 book ai didi

python - 如何编写一个用 python 调用自身的 bash 脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:22 25 4
gpt4 key购买 nike

谁能解释一下这个 bash 脚本是如何工作的?我不明白的部分是 """:",这个语法在 bash 中是什么意思?

#!/bin/sh 

""":"

echo called by bash
exec python $0 ${1+"$@"}

"""

import sys
print 'called by python, args:',sys.argv[1:]

测试运行结果:

$ ./callself.sh xx
called by bash
called by python, args: ['xx']


$ ./callself.sh
called by bash
called by python, args: []

最佳答案

太聪明了! 在 Bash 中,""":" 将被展开为只有 :,这是一个空命令(它什么都不做) .因此,接下来的几行将被执行,导致 exec。那时,Bash 不复存在,Python 重新读取该文件(其名称为 $0),并转发原始参数。

${1+"$@"} 表示:如果定义了 $1,则将 "$@" 作为参数传递,这是原始的 Bash 脚本参数。如果未定义 $1,这意味着 Bash 没有参数,结果为空,因此不会传递任何其他内容,甚至不会传递空字符串。

在 Python 中""" 开始一个多行字符串,其中包括 Bash 命令,并延伸到结束 """。所以 Python 会直接跳到下面。

关于python - 如何编写一个用 python 调用自身的 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com