bash 的if 语句,for 语句

原创 2012年03月27日 14:19:36
#!/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 风格的条件语句

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux Shell下条件语句:

Linux Shell下条件语句: 1、 测试字符串之间的关系 bash把所有的命令行和变量都看作字符串。一些命令如expr和test可以把字符当作数字进行操作。同样任何数字也可以...

shell条件嵌套(if条件语句)

【注意1】:和Java、PHP等语言不一样,sh的流程控制不可为空,如: 代码如下: 在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样: ...

Bash_Shell if 条件判断

菜鸟我最近在学习shell脚本,自己写了个很简短的脚本测试下,一直报错“syntax error near unexpected token `then' ”。上网google了一圈也没发现原因。原来...
  • mci2004
  • mci2004
  • 2012年02月06日 16:02
  • 10682

书写优雅的shell脚本(一)- if语句

使用unix/linux的程序人员几乎都写过shell脚本,但这其中很多人都是为了完成功能而在网上找代码段,这样写出来的shell脚本在功能方面当然是没有什么问题,但是这样的方式不能写出优雅的shel...

Linux Bash Shell学习(九):流程控制——if/else

  本文也即《Learning the bash Shell》3rd Edition的第五章Flow Control之读书笔记,但我们将不限于此。flow control是任何编程语言中很常用的部分,...

shell脚本----if(数字条件,字符串条件,字符串为空)

二元比较操作符,比较变量或者比较数字. 注意数字与字符串的区别. 1.整数比较  -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne...
  • yf210yf
  • yf210yf
  • 2013年06月30日 14:01
  • 149406

Bash脚本之if-then语句

if-then语句格式如下: if 命令; then 语句块 fi 注意: 1. 如果命令的退出状态码是0,则执行语句块,否则跳过语句块。 每条命令执行结束后都会产生一个退出状态码,退出状态码是...
  • hws912
  • hws912
  • 2014年03月06日 10:19
  • 1821

#!/bin/bash

在shell脚本的第一行中,必须写#!/bin/bash吗?带着这个问题,我今天在百度上搜索了一下, 发现在一个贴子中讨论了这个问题,觉得各个跟贴者在回答这个问题时,都解释的很有道理,现摘记如下,以...

理解 Bash 的 if 语句 来源:http://qixinglu.com/

写 bash 脚本的日子也不短了,但是每次用到 if 语句时大脑还是会卡壳一下,要翻教程和看以前的代码,因为条件部分语法神出鬼没,捉摸不定,于是我还是花点时间狠狠研究了一下,写了这篇文章做总结。 诡...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bash 的if 语句,for 语句
举报原因:
原因补充:

(最多只允许输入30个字)