bash 的if 语句,for 语句
#!/bin/bash
if [ -f tar.sh ]
        echo "tar.sh exist";
else
        echo "tar.sh not exist";

fi

执行出现错误:

./1.sh: line 4: syntax error near unexpected token `else'
./1.sh: line 4: `else'

原来是缺少了then 语句。 bash 跟 c 语言还是不太像的。 是不是有点象basic?

正确的写法是加上then , 如下:

#!/bin/bash
if [ -f tar.sh ]
then
        echo "tar.sh exist";
else
        echo "tar.sh not exist";

fi

执行,正确。


在控制台下直接敲入为: if [ -f tar.sh ]; then echo "tar.sh exist"; else echo "tar.sh not exist"; fi

语句之间用分号分割。

----------------------------------------
字符串变量的比较,= == 都可以, 字符串变量最好加上双引号
否则,可能出现 too many arguments
----------------------------------------
[root ~]$ a="abc def"
[root ~]$ echo $a
abc def
[root ~]$ if [ $a = "abc def" ] ;then echo yes;else echo no;fi
bash:root [: too many arguments
no
[root ~]$ if [ "$a" = "abc def" ] ;then echo yes;else echo no;fi
yes
----------------------------------------
if 语句(测试语句)的简单写法, 实际上是test 语句/ [ ] 语句
----------------------------------------
[root ~]$ [ "$a" = "abc def" ] && echo yes || echo no
yes
[root ~]$ [ "$a" = "abc defd" ] && echo yes || echo no
no

~                                                                          


除了 if then... else .... fi 语句

还有 for do...done 语句, while do ... done 语句等


bash for 循环举例:

for var in ... 方式和 c表达式方式

for i in 1 2 3 4 5; do echo $i; done

for ((i=0; i<10; i++)); do echo $i; done  // c 风格的条件语句

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejinjing_tom_com/article/details/7398746
文章标签: bash
个人分类: bash 编程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

bash 的if 语句,for 语句

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭