与zsh相比,bash的独特function

我一直是一个zsh用户相当一段时间(之前的tcsh和csh之前)。 我对此很满意,但是想知道zsh中是否存在bash的一些引人注目的特性。 反过来说,有没有在bash中存在的zshfunction。 我目前的感觉是,bash更好:

  • 如果你已经熟悉它,不想学习新的语法。
  • 它将在大多数所有* nix机器上默认存在,而zsh可能是一个额外的安装。

不要试图在这里开始一场宗教战斗,这就是为什么我只是寻找只存在于其中一个炮弹中的特征。

zsh是vulcans的。 😉

严重:bash 4.0有一些以前只能在zsh中find的function,比如** globbing:

% ls /usr/src/**/Makefile 

相当于:

 % find /usr/src -name "Makefile" 

但显然更强大。

在我的经验中,bash的可编程完成比zsh要好一些,至less在某些情况下(例如完成aptitude的debian软件包)。

bash有Alt + . 插入!$

zsh有所有variables的扩展,所以你可以使用例如

 % rm !$<Tab> 

为了这。 zsh也可以在后台扩展一个命令,所以

 % cat `echo blubb | sed 's/u/a/'`<Tab> 

产量

 % cat blabb 

我发现扩展rm *是非常有用的,因为你可以看到将被删除的内容,并且可以从命令中删除一个或两个文件,以防止它们被删除。

还不错:使用从命令输出的其他命令不会从标准input读取,但期望一个文件名:

 % diff <(sort foo) <(sort bar) 

从我读的bash完成也支持通过ssh完成远程文件名,如果你使用ssh-agent,这曾经是一个很好的理由切换到zsh。

zsh中的别名可以被定义为在整个工作线上而不是在开头:

  %alias -g ... =“../ ..”
 %cd ...

我想指出的是,在FreeBSD,OpenBSD或NetBSD上,bash并不是默认安装的,在Solaris 10上它也没有默认安装(OpenSolaris有默认的),上次我使用AIX,默认情况下,它也未安装HP-UX服务器。

另外,在OpenSolaris / bin / sh不是bash。 这是ksh。 我作为一个软件搬运工所面临的最大问题是假设/ bin / sh是bash的人,并且它会接受bash扩展语法。 虽然这似乎是在大多数Linux发行版的情况下,情况并非如此,这是真的很烦人。

虽然我是一个bash用户,但我发现zsh的一个function很酷:RPS1。

记得:

  • PS1:左alignment的提示
  • RPS1:右alignment提示

样品:

当使用类似的东西

 PS1='%B(%h) %m%#%b ' RPS1='(%20<…<%~)' 

你得到你的提示在左边,当前目录推到右边。 当前线路太长,甚至会消失! 这是因为zsh足够聪明,可以给RPS1以低优先级。

你可以在http://imgur.com/OAZhC上看到这个例子的截图&#x3002;

Zsh拼写更正。 如果你是一封信(或更多),它会弄清楚你的意思。

它也有更强大的选项卡完成,我喜欢。

Zsh有一个交互式的configuration工具来设置你喜欢的方式。

一些速度testing说zsh比较快,但我没有注意到任何区别。

我不知道任何zsh不支持的bashfunction。 zsh的devise目标似乎包括支持bash添加的任何function。

我仍然使用bash而不是zsh。 我很less遇到zsh支持bash不支持的强大function。 zsh多年来偶尔出现的问题,或者某些系统不存在的问题,使得它不值得过渡。

我终于可以在每个Unix系统上使用相同的shell,不用为了我永远不会使用的function而破坏它。

在bsh中不存在的function似乎大多是可爱的,但不是日常重要的function。

bash有许多function,以前只能在zsh中使用。 正如任何最近的ubuntu用户发现的一样,你现在可以用bash进行“智能选项卡完成”。

stream程replace和扩展匹配是我最想念的两个特性。 提示设置也很酷 – 在命令行中键入复杂语句时可以看到嵌套的级别。 自动加载使得在每个shell中包括许多function是可行的。

由于vi模式的支持,我是zsh的粉丝,但是我发现它并没有被广泛使用。 我想我读了zsh喜欢从其他shell获取stream行function,并将它们结合起来(所以特定于bash和csh特定的东西在zsh中都是可用的)。

也有人说我用zsh来炫耀我的极客因素,但是我不能证实或否认这个谣言。

受欢迎,#430用户。 #zsh 123个用户。 我相信zsh网站与其他shell有很好的比较。 zsh有更好的vi模式支持。

Bash对if和while使用相同的语法,因为它可以在命令行的/ bin / sh脚本中使用。
在zsh中,语法是不同的。 有效地使用zsh,你必须记住两者,如果你在你的命令行中使用if或while语句