我有一个bash脚本,它导出两个辅助python脚本,使用带有";,并从/tmp执行它们。
它运行良好,但当我在具有自动/tmp清理功能的服务器上部署此脚本时,它总是会在一段时间后删除导出的python脚本。
此外,我无法手动将所需的python脚本复制到服务器上,只能执行此脚本。
想到了一个主意
现在我导出像这样的脚本
cat << "SCRIPT" > /tmp/script.py && chmod +x /tmp/script.py
然后用一个参数执行它们
我试着这样做
python << "SCRIPT"
脚本运行,但不需要争论。我试着引用和使用xargs。
有什么方法可以将参数传递给像这样执行的脚本吗?
当您希望它从stdin获取代码时,将Python解释器-
作为您希望它读取代码的文件名传递。因此:
python - "argument one" "argument two" "argument three" <<'EOF'
import sys, pprint
pprint.pprint(sys.argv)
EOF
正确发射:
['-', 'argument one', 'argument two', 'argument three']
将代码传递到Python解释器的另一种方法是在命令行上:
pyscript=$(cat <<'EOF'
import sys, pprint
pprint.pprint(sys.argv)
EOF
)
python -c "$pyscript" "argument one" "argument two" "argument three"
其输出略有不同:
['-c', 'argument one', 'argument two', 'argument three']