我们是否应该放弃 shell 脚本(bash)并尽可能使用 Python

我们是否应该放弃 shell 脚本(bash)并尽可能使用 Python

我写 Python 越多,我就越讨厌 shell(bash)脚本

例如

if ["foo" = "foo"]; then
   echo "expression evaluated as true"
fi

猜猜什么是错误?我需要一个空间之后[,这很难调试,而且毫无意义,在 Python 中,它很短而且容易

if "foo" == "foo":
    print "expression evaluated as true"

由于 Python 现在在大多数系统中都可用,您是否认为这是一个放弃 shell 脚本而转向 Python 的好机会?

对于那些仍在编写新的 shell 脚本的你,原因是什么?

答案1

我仍然用 bash 编写非常复杂的脚本。原因是什么?主要是因为我已经习惯了,而且 bash 在所有系统上都存在(请确保不要执行 #!/bin/sh,因为在某些系统上可能会有 dash...)。

另一个原因是与系统命令的集成非常紧密。

我想开始习惯使用 perl 或 python 的一个很好的理由是,bash 没有异常。如果出现您忘记捕获的错误,它会继续运行脚本。甚至执行“command || exit”也不起作用,因为它在管道中不起作用。

答案2

简单。1)subprocess链式操作很烦人。2)for f in * ; do foo "$f" ; done一次性输入比编写 Python 脚本执行相同操作更容易。

答案3

就我个人而言,我既使用 shell 脚本,也使用 Perl 脚本。当我主要需要处理系统命令时,我发现编写 shell 脚本更方便。

在其他情况下,当我需要使用某个库时,我无法在 shell 中找到它的等效项,或者不知道可以轻松执行该操作的命令,我会切换到 Perl。当我需要连接到数据库时就是这种情况。我使用 Perl DBI 模块。我说的是 Perl,但同样的想法也适用于 Python。

最好同时掌握两者。有时你需要这个,有时你需要另一个。

相关内容