加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何将bash与python混合使用

发布时间:2020-12-15 18:26:46 所属栏目:安全 来源:网络整理
导读:我非常喜欢使用unix命令,但我找到了点,我会发现嵌入式 python部分很有用.这是我的代码: #!/bin/bash -echo "hello!";exec python END_OF_PYTHON#!/usr/bin/env pythonimport sysprint ("xyzzy")sys.exit(0)END_OF_PYTHONecho "goodbye!"; 但是,只打
我非常喜欢使用unix命令,但我找到了点,我会发现嵌入式 python部分很有用.这是我的代码:
#!/bin/bash -
echo "hello!";

exec python <<END_OF_PYTHON
#!/usr/bin/env python

import sys

print ("xyzzy")

sys.exit(0)
END_OF_PYTHON

echo "goodbye!";

但是,只打印“hello”.

$./script.sh 
hello!
xyzzy

如何修改bash脚本以完全嵌入python?那么可以将python变量中的值传递给bash变量吗?非常感谢.

在exec python …行上,你是exec()在你的PATH上运行Python解释器,所以python图像将取代bash图像,并且绝对没有希望回声“再见!”永远被处决如果这就是你想要的,那很好,但除此之外,只要省略exec.

python代码中的shebang(“#!”)行是完全没必要的.当您尝试运行普通文件时,内核会看到“#!”,运行它后面的任何内容(/usr/bin/env python),并将文件的其余部分提供给已运行的任何文件的标准输入.这是用于调用解释器的通用工具.由于您自己调用python解释器,而不是要求内核执行它,因此既不需要也不需要它.

sys.exit(0)也是不必要的,因为Python解释器无论如何都会在它到达输入结束时(在END_OF_PYTHON处)自然退出.这意味着import sys也是不必要的.

总之,以下是我要编写的内容,以实现您希望实现的目标:

#!/bin/bash
echo "hello!";

python <<END_OF_PYTHON
print ("xyzzy")
END_OF_PYTHON

echo "goodbye!";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读