Chinaunix

标题: 这个if 有什么问题 [打印本页]

作者: wuxiaobo_2009    时间: 2012-10-05 17:09
标题: 这个if 有什么问题
21 if [ \( 3 -gt 2 \)||\( 4 -le 1 \) ]; then
22     echo "hello"
23 fi
~

作者: jason680    时间: 2012-10-05 17:19
回复 1# wuxiaobo_2009

多看点书是对的...
[置顶]:shell 十三問:

[置顶]:shell基础二十篇
    ...
    shell基础学习第十七篇-条件测试
    shell基础第十八篇-控制流结构

作者: zooyo    时间: 2012-10-05 17:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: w630866139    时间: 2012-10-05 19:04
多看书多练才是王道啊
作者: wuxiaobo_2009    时间: 2012-10-06 19:07
回复 1# wuxiaobo_2009


  [root@wuxiaobo test]# if (((3>2)||(4<=2)));then
> echo "hello"
> fi
hello

那这样也行,我是想让大家帮我分析一下上边的为什么行不通呢。唉。。。。

作者: L_kernel    时间: 2012-10-06 19:51
因为那不符合bash分支的处理方式。
括号应该是c shell的处理方式了。
作者: Shell_HAT    时间: 2012-10-06 21:20
回复 5# wuxiaobo_2009


    你是按照哪个shell的语法写的?
作者: wuxiaobo_2009    时间: 2012-10-07 09:09
回复 7# Shell_HAT

反正bash 中都能用。我没有看bash 的规范,哪个不能用?


   
作者: Shell_HAT    时间: 2012-10-08 09:50
回复 8# wuxiaobo_2009


    顶楼的语法是你在某本书上看到的?还是自己想出来的?
作者: wuxiaobo_2009    时间: 2012-10-08 20:57
回复 9# Shell_HAT

惭愧以本人现在的功力还不能造公式,是在Learning the bash 中Flow control 一节看到的,哎bash 编程 的真正模式是什么? 为什么是这样?  吾将上下而求索.......

   
作者: Shell_HAT    时间: 2012-10-08 22:35
回复 10# wuxiaobo_2009


    我在http://bbs.chinaunix.net/thread-1776727-1-1.html下载的chm文件里面没找到你这段代码,你从哪里下载的教程?第几页?我也想看看
作者: wuxiaobo_2009    时间: 2012-10-09 16:05
你看5.1 if/else 中不难找出这样的形式,譬如:
if [ \( -n "$dirname"\) -a  \( -d "$dirname" \) -a \

         \( -x "$dirname" \) ]; then




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2