![]() |
1
62
到目前为止,linux上最常见的shell是bash。除非您有充分的理由使用另一种方法,否则我建议您坚持使用bash或项目团队最常用的shell(或您必须使用的大部分shell脚本)。 另一个非常常见的竞争者是dash,它正被ubuntu项目越来越广泛地使用。 这确实是个人喜好,除了 csh . |
![]() |
2
61
我更喜欢zsh。 单是完成选项卡就值得:
|
![]() |
3
27
对于交互性,请使用zsh。有一段时间,我是bash tab完成脚本的freebsd端口的维护者,但当我第一次尝试zsh时就放弃了它。它可以做任何bash可以做的事,但更容易和更优雅。它还有一个很好的特性,就是有非常像bash的击键,所以如果你在一个没有zsh的系统上,你就可以做到(即使它不会“感觉”那么好)。 对于脚本,请使用bourne shell(sh)。它是POSIX标准脚本语言,您的脚本几乎可以保证在任何地方都能工作。bash、zsh和其他shell都有很好的扩展,您可能会错过这些扩展,但它们会将您绑定到特定的设置。忽略那些只供个人使用的脚本,你肯定不会在别处运行,但要记住,这是你需要考虑的真正的折衷。 但总而言之,是的。我不知道有谁试过,但没有立即和永久地改变。真是太好了。 |
![]() |
4
22
Fish (友好的交互shell)是大多数其他shell的一个不错的替代品。它具有一致的语法、良好的制表符完成和语法突出显示,易于获取和使用(特别是如果您没有来自其他shell的习惯),并且具有出色的运行时帮助。 缺点是它的开发不稳定,用户基数小(但有帮助),而且与其他shell非常不同。与shell习惯用法的向后兼容性不是优先考虑的问题。 在很多情况下这是好的…很多标准的shell都有非常愚蠢的做事方式,只是因为它总是这样做的。”do/done“,”case/esac“,”if/fi“?这是鱼做的疯狂。 值得一看。 |
![]() |
5
18
既然我相信我是那个建议你使用C shell以外的东西的人,也许我应该稍微限定一下我的评论,然后支持那些说“Linux上的bash,其他平台上的korn shell(除非bash也安装在那里)”的人。
更像是编辑(你更喜欢
如果您决定使用C shell以外的其他东西,那么您基本上是在Bourne shell阵营中,POSIX标准或多或少地指定了预期的行为,然后不同的shell(即Bourne、Korn或Born Reagain shell)添加(或者经典的伯恩贝壳,减去)一些特点。如果您的代码可能需要从linux迁移到hp-ux、solaris或aix(经典的、at&t派生的unix变体中幸存的三个),那么您应该考虑确保用经典的bourne shell编写shell脚本,尽管korn shell也非常安全。不过,请注意,在linux上可以编写
我在korn shell和bash之间切换没有大问题,很少有小问题。我倾向于避开这两种语言中那些没有很好定义的角落——这往往意味着“两者都有定义”。对于那些使用linux的人来说,另一个问题是gnu工具比经典的unix版本有更多的选项,并且您可能会失去可移植性,这不是因为您使用的shell编程结构,而是因为您使用的命令选项。经验和随时访问其他系统的手册页有很大帮助。 |
![]() |
6
8
我通常坚持使用bash,因为它比直接使用sh更友好,而且它是我半定期使用的每个发行版(suse、rhel、ubuntu、slackware)的默认版本。 但是,如果您计划编写可移植的shell脚本,请确保它们都在 真实的 嘘。 |
![]() |
7
6
猛击。这是标准的。 |
![]() |
8
6
csh的问题在于,它不适合脚本编写,如前所述 here . 没有什么真正的理由不应该将它用作交互式shell,但是大多数人发现,学习两个不同的shell和不能在命令行上尝试它们的脚本是令人困惑的,所以对所有东西使用相同的shell是最容易的。 交互shell的明显候选者是bash、dash、zsh和{pd,}ksh。所有这些都实现了posix外壳标准,并带有一些小的扩展。选择任何你喜欢的交互使用,我倾向于使用bash,因为它是linux上的标准,但它们都有各自的优点,zsh特别受欢迎。 如果你正在写一个脚本,你打算是便携式的,使用!/bin/sh,并确保使用标准posix shell语法。如果对bash和ksh都有效,那可能是标准的。有一些旧版本的unix有一个非标准的/bin/sh,但是除非你知道你必须这样做,否则我不会介意。对于可移植性来说,更大的问题是从脚本调用的所有命令行工具。 |
![]() |
9
4
没有人提到基于debian的标准
所以我用
|
![]() |
10
3
我不是ruby的大用户,但是 http://rush.heroku.com/ 看起来很有趣 |
![]() |
11
3
坚持使用bash可能是最好的,因为它是作为shell使用最广泛的工具,您可能从某人那里得到的任何教程或帮助都很可能使用bash。但是,我已经开始对所有脚本使用zsh,并且我发现它在脚本编写方面远远优于bash。 |
![]() |
12
2
不要使用korn shell(ksh)。 除非你有完美的打字,而且不需要使用退格键。 |
![]() |
13
1
实际上我喜欢ksh。它比bash更加一致,因为它不支持任何csh结构。根据我的经验,tcsh与其他shell最不兼容,我避免使用它。我试图将脚本编写为sh,但是ksh确实有一些很好的特性,比如在一行上导出和设置变量。我也试图保持与bash的兼容性,因为它功能齐全且很常见。要编写可移植的shell脚本,这比选择“最佳”shell更重要,您可以参考本书。 便携式shell编程:bruce blinn的大量bourne shell示例(hp professional series)(平装本-1995年10月29日) amazon.com |
![]() |
14
1
我一直使用pdksh,没有任何接近完美的输入(也许你需要修复你的termcap?). ksh是标准,csh是标准,bash是“标准”,但仅在linux上。最好瞄准克什米尔。 |
![]() |
15
1
我更喜欢写真实的剧本
|
![]() |
16
1
我也是从csh,tcsh来的。这是不同的,但过了一段时间,至少和c-shell一样好。 对于脚本编写,我建议使用ksh,因为它在大多数unix(solaris、hp-ux、osf/1(有史以来最好的unix;)—目前)上都可用,而且它有很好的特性。使用korn,您可以编程大多数脚本。sporadicaly您希望从函数中获得比数字更多的返回值,或者您有一些不能放在简单数组中的数据,或者您需要一些在regegs或其他情况下具有更好功能的数据,那么我建议使用perl。 |
![]() |
17
1
对于脚本,尝试使用dash一段时间,以获得对可移植内容的良好感觉。如果使用bash编写shell脚本,请在脚本shebang中显式声明bash。 对于你的个人游戏机,尝试一下外面的东西。找到你喜欢的东西。请保持古怪,并恼怒所有系统管理员朋友拿起一个外壳,必须从源代码中编译的每一台机器,你想使用它。 |
![]() |
18
0
我认为fish是最好的,它有语法高亮(对于不存在的命令)并且可以自动填充。而且很容易学。 |
![]() |
19
-3
选择一个: A. TCSH KSH CZH D.登录 巴什 我会使用登录。只是说说而已。 |
![]() |
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 6 月前 |
![]() |
Fin · 如何使用bash从表中提取数据 6 月前 |
![]() |
aenagy · Bash声明不喜欢带空格的值 7 月前 |
![]() |
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 7 月前 |
![]() |
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 7 月前 |
![]() |
Harry · 使用“$!”获取后台作业的pid 7 月前 |
![]() |
nmr · 使用来自另一个shell脚本的if语句的返回码函数 7 月前 |
![]() |
minseong · Git sed忽略二进制文件 11 月前 |
![]() |
Jesper.Lindberg · 检查参数是否包含null 11 月前 |