我写 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。
最好同时掌握两者。有时你需要这个,有时你需要另一个。