[问题] Shell script有几种写法

楼主: globalhawk (Cory)   2014-07-29 15:14:44
最近遇到的诡异问题
照里说script前端宣告了 #!/bin/bach 后
应该只有一种写法吧?!
可是我发现我写 if 条件判断的时候...
完全不能使用一般资料上写的 if[条件]; then
那样子会syntax error
后来我摸了很久 才发现用 if expr (条件); then 可以
可是好像没人介绍这种写法啊 我是自己乱凑凑出来的
我用的版本是Fedora 14 / 16 ... 目前试起来都这样
作者: carylorrk (carylorrk)   2014-07-29 15:26:00
bash? 我猜你 [] 里面没有空格才会出问题?
作者: CaptainH (Cannon)   2014-07-29 15:26:00
if 和 [ ] 之间都要空格
作者: justdoitmmo (伊剑)   2014-07-29 15:28:00
空格很重要,没空都会出问题
作者: carylorrk (carylorrk)   2014-07-29 15:36:00
没记错的话 expr 比较类似 (()) 是数值计算用
楼主: globalhawk (Cory)   2014-07-29 17:41:00
我空格不空格都试过了 玩好久再试试看好了 :p
作者: Tormentor   2014-07-29 17:54:00
贴出来看看?
楼主: globalhawk (Cory)   2014-07-29 19:20:00
哈 ... 好像真的是空格... 不知道它那parser怎写的
作者: lantw44 (#######################)   2014-07-29 19:55:00
因为 [ 本身是一个指令 ......
作者: prismwu   2014-07-29 20:26:00
[ is a shell builtin
作者: bitlife (BIT一生)   2014-07-30 07:43:00
直译式(interpreter)的parser为求效率,语法限制多些很合理
楼主: globalhawk (Cory)   2014-07-30 11:36:00
是啊...限制多一点parser可以简单一点
作者: OPIV (Monitor)   2014-08-08 12:14:00
#!/bin/bash

Links booklink

Contact Us: admin [ a t ] ucptt.com