如何运行存储在Shell变量中的Python程序?
运行Shell变量中存储的Python代码的可行方法
你之前的写法无效,是因为python3默认接收的是文件名,而非直接的代码字符串,所以它会把$CODE的内容当成文件名去查找,自然找不到对应文件报错。
以下是两种可行的实现方式:
方法一:使用Python的-c选项
python3的-c参数专门用于执行字符串形式的Python代码,脚本修改为:
#!/bin/bash python3 -c "$CODE"
使用时先定义变量:
export CODE='print("Hello World")'
再运行你的Shell脚本,就能正常输出Hello World。
注意必须用双引号包裹$CODE,否则Shell会拆分代码中的空格、特殊字符,导致Python执行出错。
方法二:通过管道传递代码
也可以将变量内容通过管道传给python3执行,脚本写法:
#!/bin/bash echo "$CODE" | python3
效果和方法一一致,适合需要处理多行代码的场景(只要变量中存储的是正确的多行Python代码格式即可)。
内容的提问来源于stack exchange,提问作者Leuel Asfaw
相关产品推荐
相关产品推荐

