当普通狂欢还不够
不久前,我在Sahil Bondre上读了一个出色的introductory Bash tutorial。
这是一个非常出色的教程,讲述了外壳脚本的基础知识,但是我记得当我开始使用Shell Scriptting冒险时,以及我(结束)对Bash着迷的时候。随着时间的流逝,当我的神经影像脚本开始变得越来越复杂时,我逐渐开始失去对代码的控制!
很多次我觉得那样:
Python时代
那是我发现的那个时候,在某个时候,需要更复杂的逻辑表达式(更多条件,环和功能),它值得从Bash转换为Python。希望有了Python,您可以包装(几乎)任何bash命令。这很简单:
import subprocess as sp
bash_command = "ls ~/"
print("\nBash command:\n%s\n" % bash_command)
process = sp.Popen(bash_command, stdout=sp.PIPE, shell=True)
output, error = process.communicate()
print("\nBash command output:\n%s\n" % output)
print("Bash command error:\n%s\n" % error)
(它适用于Linux和MacOS。)
请注意其他打印件,因为在运行命令之前更容易调试。此外,您可以看到命令的输出(就像普通的bash shell一样)。
上面的示例是受this StackOverflow answer的启发。
事实证明,Python语法更可读性,更易于维护,是的! ð
采用~/
消息
不要长时间坚持普通的狂欢 - 通常,您真正需要的只是Python!但是,对于一个非常简单的脚本,您当然可以始终使用良好的bash;)
另请参阅我从2020年开始的原始帖子(现在已经是2023年:),但是知识仍然是非常最新的):https://www.mindyourdata.org/posts/when-plain-bash-is-not-enough/
封面照片来源:Abhishek rana上的Unsplash
照片