【发布时间】:2014-09-13 20:06:57
【问题描述】:
我有一个小型 python 程序,它解析一个文本文件并将输出写入另一个文件。目前,我正在编写一个bash脚本来多次调用这个程序,它看起来像:
for i in $(seq 1 100); do
python /home/Documents/myProgram.py myTextFile$i
done
这很好,但我想知道是否可以在 bash 脚本文件中包含 python 程序,因此当另一个用户运行脚本时,他们不需要将 python 程序放在他们的内存中;即,是否可以将 python 程序复制并粘贴到 bash 脚本中并从脚本本身中运行它?
【问题讨论】:
-
或者,您可以将程序
echo到脚本旁边的文件中,从那里运行它,然后rm该文件。但真的,不要这样做。您不会对该程序进行任何语法突出显示,使其几乎无法维护。而是将其与脚本打包在一起,或者让您的 Python 脚本完全替换 bash 部分。 -
这可能也取决于 Python 程序中的内容...
-
@tobias_k: +1 用于替换,因为 Python 也可以执行
for循环。 -
与您的问题没有直接关系,但被认为是一种改进,将是:for i in {1..100}; do ... - 原因:大括号扩展是 bash 内置的,不需要 subshell,而 seq 不是,需要 subshell 并且不是无处不在。有些人更喜欢 for (( ...; ; )) 样式循环,但你在 python 中也有这些