Bash c风格if语句和样式技巧
根据我的理解,你可以在bash中使用C-style for和while循环.
LIMIT=10 for ((a=1; a <= LIMIT ; a++)) # Double parentheses,and "LIMIT" with no "$". do echo -n "$a " done # A construct borrowed from 'ksh93'. 甚至是三元操作符. (( var0 = var1<98?9:21 )) 你会用if语句怎么做? 另外他们为什么不在C中实现大括号呢?使用所有这些关键字的逻辑是什么,如done,do,if和fi?我将编写一些脚本,但bash看起来非常不同. 有没有任何bash样式技术或bash替代品/插件?我想遵循标准,但来自C,Java和PHP背景bash看起来很奇怪.可维护性和标准很重要.
bash(以及sh家族的其他shell)的一些语法特性与if有关:
>基本的if语句具有if-condition的语法;然后列出; fi(有可能为其他分支添加elif和其他分支). > condition-command可以是bash支持的任何命令(我认为,即使是另一个命令),然后执行返回值. (实际上,它也可以是一个命令列表,但这可能会使读者感到困惑.最后一个命令的返回值会计入条件.) >一些有用的命令作为条件(这些也作为while循环中的条件): > […]实际上是另一种编写测试的方法… – 这只是一个可能返回0(真)或1(假)的命令,具体取决于你给出的参数. (这是shell的构建.) 在算术表达式中,shell变量可以在没有$的情况下使用,并且所有内容都被解释为整数(具有固定宽度,但我没有找到哪个).您可以使用以下运算符: >一元:,–,!,?(在C中) 我认为一般来说这很像C整数表达式. (这些大致按优先顺序排列,但有时每个组内部都存在划分.查看信息'(bash)Shell Arithmetic’了解详细信息.) >列表: >(…)是一个命令列表,在子shell中执行.此子shell中的变量赋值不会传播回来. 所以,你可以用一些大括号和圆括号编写你的if命令,但你仍然需要你的那个和fi: if (( i > 0 )) then { echo "i > 0" } else { echo "i <= 0" } fi 这里的括号简直是多余的,因为当时,else和fi之间的命令无论如何都是(每个)一个列表. (还要注意需要换行符号;在此处关闭括号之前和之后.) 但正如其他人所说,如果你想使用类似C的语法,最好使用另一种语言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |