吐槽:bash 的语法那么乱,各位都是怎么忍的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xieranmaya
V2EX    程序员

吐槽:bash 的语法那么乱,各位都是怎么忍的?

  •  
  •   xieranmaya 2014-05-12 19:00:59 +08:00 via Android 6832 次点击
    这是一个创建于4218 天前的主题,其中的信息可能已经有所发展或是发生改变。
    33 条回复    2014-05-14 14:16:31 +08:00
    lsmgeb89
        1
    lsmgeb89  
       2014-05-12 19:04:34 +08:00
    记得上次偶尔写个小脚本,为了一个语法,折腾了半天。
    hitsmaxft
        2
    hitsmaxft  
       2014-05-12 19:06:23 +08:00
    bash的语法没啥问题, 只是习惯了类c语法的人, 理解它会有点不适应而已而已.

    再说, 你觉得哪里乱了.
    PotatoBrother
        3
    PotatoBrother  
       2014-05-12 19:06:27 +08:00 via iPhone
    所以我们不用bash
    yukirock
        4
    yukirock  
       2014-05-12 19:11:08 +08:00   1
    然是 Perl 啊
    至少比 bash 容易理解一些……
    xieranmaya
        5
    xieranmaya  
    OP
       2014-05-12 19:14:38 +08:00
    @hitsmaxft
    太多了啊……那各种可有可无的引号,表达式,有些跟类C的一样,有些又跟类C的相反……,还有数学运算啥的……
    Shieffan
        6
    Shieffan  
       2014-05-12 19:16:09 +08:00 via iPad
    不觉得有什么问题,shell解释器本来就是unix tools与unix习惯的拼凑,它的语法就那么几条,比起一堆语法糖的现代语言简单多了
    hitsmaxft
        7
    hitsmaxft  
       2014-05-12 19:20:45 +08:00
    @xieranmaya 因为它是一个古老的弱类型语言, 生来就是在处理命令行和字符序列.

    引号是为了正确地转椅, 你在哪一门语言写嵌套参数的字符串, 都会面临这个问题. 至于数学运算, 是因为它没有int这个概念, 需要通过表达式运算取值

    bash 对于 需大量shell操作的用户友好,. 否则还是用python之类的, 亲和力还是不错的.
    lm902
        8
    lm902  
       2014-05-12 19:23:57 +08:00
    用node.js替代之
    ultimate010
        9
    ultimate010  
       2014-05-12 19:26:01 +08:00
    同样觉得bash语法太乱,多次尝试学会使用都放弃了。。。
    skybr
        10
    skybr  
       2014-05-12 19:26:04 +08:00
    不perl不幸福。
    skydiver
        11
    skydiver  
       2014-05-12 19:28:19 +08:00 via Android
    所以bash的英文意思是……自己去查吧
    Zhang
        12
    Zhang  
       2014-05-12 19:29:30 +08:00
    大家觉得c shell怎么样呢?
    jings
        13
    jings  
       2014-05-12 19:33:21 +08:00 via Android
    zsh大神在此 蝌蚪们有什么想问的吗 手动斜眼
    lnehe
        14
    lnehe  
       2014-05-12 19:45:46 +08:00
    python+1
    ericls
        15
    ericls  
       2014-05-12 19:51:24 +08:00   1
    我觉得matlab的语法是最无法理解的。。
    sandtears
        16
    sandtears  
       2014-05-12 19:56:50 +08:00
    基本上我只写顺序语句,只要涉及到判断或者循环我都是换 Python
    kotokz
        17
    kotokz  
       2014-05-12 19:59:12 +08:00
    所以我学了perl.
    pfitseng
        18
    pfitseng  
       2014-05-12 20:45:09 +08:00 via Android   1
    bash 是为了快速处理问题,如果是有计划的,perl or python
    hhkbp2
        19
    hhkbp2  
       2014-05-12 21:19:22 +08:00   1
    动辄多线程,所以动辄python
    lazycat
        20
    lazycat  
       2014-05-13 00:51:36 +08:00 via Android
    @ericls 赞!同感!
    Tink
        21
    Tink  
    PRO
       2014-05-13 00:57:01 +08:00 via iPhone
    @ericls 我觉得matlab还好啊
    ivenvd
        22
    ivenvd  
       2014-05-13 03:00:59 +08:00
    用 Fish 的表示压力不大。
    c86jeff
        23
    c86jeff  
       2014-05-13 04:02:38 +08:00
    无法理解 你说为什么乱 或者说你接触的语言比较少
    bakac
        24
    bakac  
       2014-05-13 07:03:05 +08:00
    熟悉的人不觉得乱 不熟悉的人什么语法也觉得乱
    Delbert
        25
    Delbert  
       2014-05-13 09:40:10 +08:00
    @Tink matlab有语法?好多年不用了......
    andyhu
        26
    andyhu  
       2014-05-13 16:58:09 +08:00
    @lm902 node.js +1
    越来越喜欢node,强大的神器
    dorentus
        27
    dorentus  
       2014-05-13 17:38:11 +08:00
    各种不一致,确实很乱。
    所以才有了后来的 perl 啊。
    xiaket
        28
    xiaket  
       2014-05-13 17:42:09 +08:00
    sh/bash, bash还有若干个版本, 互相之间不是完全兼容, 是挺恶心人的.
    chemzqm
        29
    chemzqm  
       2014-05-13 17:44:41 +08:00
    http://www.shellcheck.net/
    简单来说就是从来不用bash写复杂的逻辑,咱可不是做OPS的
    williamx
        30
    williamx  
       2014-05-14 09:15:19 +08:00 via iPhone
    确实挺乱的,不过没法子,习惯了就好。
    Honwhy
        31
    Honwhy  
       2014-05-14 09:27:24 +08:00
    bash语法有时候真的记不住。
    cbsw
        32
    cbsw  
       2014-05-14 10:13:01 +08:00
    不要试图将 bash 当作一门编程语言去用(尽管它的确是),正确的用法是将其作为命令行的交互界面使用,它本来就是 *nix 的 shell 而已。如果遇到有比较复杂逻辑的,请考虑换用比较正规的语言 perl/python/ruby 等,当然从上面各位推荐来看,还有 nodejs,不过个人没用过
    wangtai
        33
    wangtai  
       2014-05-14 14:16:31 +08:00
    我很喜欢,写起来很快,经常用来分析文件,如果有性能问题会用python替换。
    管道的性能倒是很大问题
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2747 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 11:09 PVG 19:09 LAX 03:09 JFK 06:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86