推荐 - Zsh vs FishShell.脚本,生产力和poweruser持之以恒

Viv*_*rma 10 bash shell zsh fish

我花了一些时间尝试选择一个,净比较是针对zsh vs bash和fish vs bash.但是,我找不到zsh vs fish的任何比较.我用C和C++编程,除了hello-world类型之外,从未做过任何主要的脚本编写.但现在尝试使用python和shell脚本.哪种外壳在生产率方面首先保留了更多的果汁然后再开发?或者最后,任何shell的功能和可用性都来自它的_rc文件.我对bash好吗?

小智 14

历史上,在C壳(CSH和TCSH)和Bash之间存在各种火焰.针对CSH变体的投诉是它们对脚本编写不利.

在我成为CLI迷的那些年里,我从未做过任何选择脚本语言的独立脚本,因为那就是我的shell.

我编写了各种脚本,大致可分为两类:

  1. 那些有助于我的命令行生产力
  2. 与我的命令行生产率没有直接关系的那些.

类别1中的脚本几乎总是用我的shell脚本语言编写(通常与我使用ZSH的功能一样,以前使用的BASH都支持函数).

类别2中的脚本是以最有效的方式编写的(开发时间和运行时间都考虑在内).我经常发现自己在Perl,C(明显编译),BASH/ZSH/SH或其他我想要的东西中编写小脚本.我做了一些Python脚本(但不多),甚至偶尔使用Java(再次编译).

那我在胡说八道呢?不要基于它的独立脚本功能来选择shell.选择你的shell作为shell的实用程序.无论你选择什么,都要写剧本.使用BASH作为你的shell你可能已经足够好了(虽然我更喜欢ZSH,**/*globbing很不错以及其他一些小东西,但我为ZSH编写的大多数脚本都早于它们的BASH同行).

  • Re:`**/*` - 现代(4.x)版本的bash也支持递归globs; 见`shopt -s globstar`.在我的观点中,一个很大的不同之处在于对未加引号的扩展的字符串拆分行为; zsh是理智的方式,而bash是以与POSIX兼容的方式实现的.在人们喜欢的方面,肯定有很多合法差异的空间; 就个人而言,我会遵守经过深思熟虑但无处不在的标准. (2认同)

Édo*_*pez 6

我有同样的问题,发现:


gho*_*g74 5

如果您找不到zsh与fish之间的任何比较,请自己尝试一下。这是唯一可以告诉您喜欢的人的方法,没有其他人可以告诉您。另外,定义生产率的含义。对我来说,这是模块的丰富性和语言的内部能力。如果您已开始使用Python,请继续使用。至于shell,关于也许了解您的rc脚本和其他系统内容等,您可以学得更少(不要说完全忘了它)。除此之外,Python可以完成shell的工作。