如何将Python程序嵌入Bash脚本?
我有一个小的Python程序,它可以读取一个文本文件,然后把结果写入另一个文件。目前,我正在写一个bash脚本来多次调用这个程序,脚本大概是这样的:
for i in $(seq 1 100); do
python /home/Documents/myProgram.py myTextFile$i
done
这个方法运行得很好,但我想知道是否可以把Python程序放在bash脚本里,这样当其他用户运行这个脚本时,他们就不需要在自己的电脑上有这个Python程序。也就是说,能不能把Python程序直接复制粘贴到bash脚本里,然后从脚本内部运行它呢?
4 个回答
0
抱歉打扰大家,不过这里有一个可能对某些人有用的技巧,之前没有提到。
#!/bin/bash
""":" # Hide bash from python
for i in $(seq 1 100); do
python3 $(readlink -f "$0") myTextFile$i
done
exit
"""
# Python script starts here
import sys
print('Argument List: ', str(sys.argv))
不过,我同意大家的普遍建议,直接在Python中使用循环就可以了。
1
对于简单的脚本,你也可以用 -c 这个选项来运行 Python。比如说:
python -c "x=1; print x; print 'great program eh'"
我不建议写太复杂的东西,但对于一些简单的任务,这个方法是可以用的。
5
我觉得你可以这样写:
python << END
[Python code here]
END
不过我还没有测试过这个。
14
#!/bin/bash
python - 1 2 3 << 'EOF'
import sys
print 'Argument List:', str(sys.argv)
EOF
输出结果:
Argument List: ['-', '1', '2', '3']