if else判断语句
  if语句
  语法格式1:

和Java、PHP等语言分裂,sh的流水线控制不可为空,假若else分支没有话语执行,就不要写那几个else。

if else

if 语句语法格式:

if condition
then
    command1 
    command2
    ...
    commandN 
fi

写成一行(适用于极端命令提醒符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

最后的fi就是if倒过来拼写,后边还会遭受类似的。

if else 语法格式:

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

if else-if else 语法格式:

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

以下实例判断八个变量是或不是等于:

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

出口结果:

a 小于 b

流程控制。if else语句平常与test命令结合使用,如下所示:

num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
    echo '两个数字相等!'
else
    echo '两个数字不相等!'
fi

出口结果:

两个数字相等!

和Java、PHP等语言不相同等,sh的流水线控制不可为空,如(以下为PHP流程控制写法):

if 条件
then
 语句1
 语句2
  ...
 语句n
fi

if else

if
if 语句语法格式:

if condition
then
    command1 
    command2
    ...
    commandN 
fi

写成一行(适用于极端命令提醒符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

最后的fi就是if倒过来拼写,后边还会遇见类似的。
if else
if else 语法格式:

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi

if else-if else
if else-if else 语法格式:

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

以下实例判断两个变量是不是等于:

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

for 循环

for循环一般格式为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

当变量值在列表里,for循环即执行一回具有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和话语。in列表可以涵盖替换、字符串和文书名。
in列表是可选的,若是不用它,for循环使用命令行的任务参数。
比如说,顺序输出当前列表中的数字:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

输出结果:

The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5

逐一输出字符串中的字符:

for str in 'This is a string'
do
    echo $str
done

出口结果:

This is a string
<?php
if (isset($_GET["q"])) {
    search(q);
}
else {
    // 不做任何事情
}

  语法格式2:
  常用于终端命令提醒符中

for 循环

与其余编程语言类似,Shell帮忙for循环。
for循环一般格式为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

当变量值在列表里,for循环即执行一回具有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以涵盖替换、字符串和文件名。
in列表是可选的,假如不用它,for循环使用命令行的义务参数。
譬如说,顺序输出当前列表中的数字:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

while 语句

while循环用于不断实践一多种命令,也用于从输入文件中读取数据;命令常常为测试条件。其格式为:

while condition
do
    command
done

以下是一个骨干的while循环,测试条件是:如若int小于等于5,那么规范再次回到真。int从0开首,每便循环处理时,int加1。运行上述脚本,重临数字1到5,然后终止。

#!/bin/sh
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done

运行脚本,输出:

1
2
3
4
5

利用中利用了 Bash let
命令,它用来实践一个或八个表明式,变量总计中不要求丰裕 $
来表示变量,具体可查看:Bash let 命令

while循环可用于读取键盘音信。上边的例证中,输入信息被设置为变量FILM,按<Ctrl-D>截止循环。

echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名: '
while read FILM
do
    echo "是的!$FILM 是一个好网站"
done

运作脚本,输出接近上面:

按下 <CTRL-D> 退出
输入你最喜欢的网站名:Google
是的!Google 是一个好网站

在sh/bash里可不能够如此写,假设else分支没有话语执行,就无须写这些else。

 if [条件];then 语句;fi

while 语句

while循环用于不断推行一多元命令,也用于从输入文件中读取数据;命令平时为测试条件。其格式为:

while condition
do
    command
done

以下是一个中央的while循环,测试条件是:借使int小于等于5,那么规范再次回到真。int从0起首,每趟循环处理时,int加1。运行上述脚本,再次回到数字1到5,然后终止。

#!/bin/sh
int=1
while(( $int<=5 ))
do
        echo $int
        let "int++"
done

等价于:

While(($int<=5));do echo $int; ((int++)); done

接纳中使用了 Bash let
命令,它用于实施一个或三个表明式,变量总括中不要求丰硕 $ 来表示变量。

while循环可用于读取键盘新闻。上边的事例中,输入音讯被装置为变量FILM,按<Ctrl-D>停止循环。
echo ‘按下 <CTRL-D> 退出’

echo -n '输入你最喜欢的电影名: '
while read FILM
do
    echo "是的!$FILM 是一部好电影"
done

极端循环

无限循环语法格式:

while :
do
    command
done

或者

while true
do
    command
done

或者

for (( ; ; ))

  if else语句
  语法格式:

最为循环

极致循环语法格式:

while :
do
    command
done

或者

while true
do
    command
done

或者

for (( ; ; ))

until 循环

until循环执行一层层命令直至条件为真时甘休。
until循环与while循环在处理格局上正好相反。
相似while循环优于until循环,但在一些时候—也只是极个别情状下,until循环尤其实用。
until 语法格式:

until condition
do
    command
done

基准可为任意测试条件,测试暴发在循环末尾,因而循环至少实施三次—请小心那或多或少。

if else

if 条件
then
 语句1
 语句2
  ...
 语句n
else
 语句
fi

until 循环

until循环执行一名目繁多命令直至条件为真时甘休。
until循环与while循环在处理方式上正好相反。
一般while循环优于until循环,但在某些时候—也只是极个别气象下,until循环越发有效。
until 语法格式:

until condition
do
    command
done

规格可为任意测试条件,测试暴发在循环末尾,因而循环至少实施一回—请留意那或多或少。

case

Shell
case语句为多选取语句。可以用case语句匹配一个值与一个方式,假如匹配成功,执行相匹配的一声令下。case语句格式如下:

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;

esac
case工作章程如上所示。取值后边总得为单词in,每一形式必须以右括号甘休。取值可以为变量或常数。匹配发现取值符合某一情势后,其间所有命令先导实践直至
;;。
取值将检测匹配的每一个形式。一旦形式匹配,则实施完匹配情势相应命令后不复继续其余形式。如若无一匹配情势,使用星号
* 捕获该值,再实践前边的命令。
上边的台本提示输入1到4,与每一种方式开展匹配:

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

输入差距的情节,会有两样的结果,例如:

输入 1 到 4 之间的数字:
你输入的数字为:
3
你选择了 3

if

if 语句语法格式:

if condition
then
    command1 
    command2
    ...
    commandN 
fi

写成一行(适用于极端命令提示符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

末段的fi就是if倒过来拼写,前面还会遇上类似的。

  if else-if else语句
  语法格式:

case

Shell
case语句为多选用语句。可以用case语句匹配一个值与一个方式,要是协作成功,执行相匹配的一声令下。case语句格式如下:

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

case工作措施如上所示。取值前边总得为单词in,每一格局必须以右括号停止。取值可以为变量或常数。匹配发现取值符合某一情势后,其间所有命令发轫举办直至
;;。
取值将检测匹配的每一个形式。一旦形式匹配,则执行完匹配格局相应命令后不复接续其余格局。要是无一匹配形式,使用星号
* 捕获该值,再实施前面的指令。

下边的台本提醒输入1到4,与每一种格局开展匹配:

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

跳出循环

在循环进程中,有时候需求在未达标循环甘休条件时强制跳出循环,Shell使用七个指令来完毕该功能:break和continue。

if else

if else 语法格式:

if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi
if 条件1
then
 语句1
elif 条件2
then
 语句2
else
 语句n
fi

esac

case的语法和C
family语言差异很大,它要求一个esac(就是case反过来)作为完成标记,每个case分支用右圆括号,用四个分集团表示break。

break命令

break命令允许跳出所有循环(终止执行前面的所有循环)。
上边的例证中,脚本进入死循环直至用户输入数字超过5。要跳出那些轮回,再次来到到shell提醒符下,须要选取break命令。

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
            break
        ;;
    esac
done

进行以上代码,输出结果为:

输入 1 到 5 之间的数字:3
你输入的数字为 3!
输入 1 到 5 之间的数字:7
你输入的数字不是 1 到 5 之间的! 游戏结束

if else-if else

if else-if else 语法格式:

if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi

 **

跳出循环

在循环进度中,有时候须求在未已毕循环甘休条件时强制跳出循环,Shell使用八个指令来达成该意义:break和continue。
break命令
break命令允许跳出所有循环(终止执行前边的有着循环)。
上面的事例中,脚本进入死循环直至用户输入数字高于5。要跳出这些轮回,再次回到到shell提醒符下,须求选拔break命令。

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
            break
        ;;
    esac
done

continue
continue命令与break命令类似,只有好几距离,它不会跳出所有循环,仅仅跳出当前轮回。
对下面的例子进行改动:

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的!"
            continue
            echo "游戏结束"
        ;;
    esac
done

运作代码发现,当输入大于5的数字时,该例中的循环不会终止,语句 echo “Game
is over!” 永远不会被实施。

continue

continue命令与break命令类似,唯有某些差距,它不会跳出所有循环,仅仅跳出当前巡回。
对上面的事例进行改动:

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的!"
            continue
            echo "游戏结束"
        ;;
    esac
done

运行代码发现,当输入大于5的数字时,该例中的循环不会停止,语句 echo “Game
is over!” 永远不会被执行。
esac
case的语法和C
family语言差距很大,它须要一个esac(就是case反过来)作为完毕标记,每个case分支用右圆括号,用五个分行表示break。

示例:

a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi

输出结果:

a 小于 b

if else语句常常与test命令结合使用,如下所示:

num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
    echo '两个数字相等!'
else
    echo '两个数字不相等!'
fi

输出:

两个数字相等!

澳门金沙国际 1

for 循环

相似格式:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

写成一行:

for var in item1 item2 ... itemN; do command1; command2… done;

当变量值在列表里,for循环即执行三次具有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和话语。in列表可以涵盖替换、字符串和文书名。
澳门金沙国际,  in列表是可选的,如若不用它,for循环使用命令行的职分参数。
诸如,顺序输出当前列表中的数字:

for loop in 1 2 3 4 5
do
    echo "The value is: $loop"
done

输出:

The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5

依次输出字符串中的字符:

for str in 'This is a string'
do
    echo $str
done

出口结果:

This is a string

结果

while语句

while循环用于不断实践一密密麻麻命令,也用于从输入文件中读取数据;命令平常为测试条件。其格式为:

while condition
do
    command
done

以下是一个主干的while循环,测试条件是:假诺int小于等于5,那么规范重回真。int从0开头,每一趟循环处理时,int加1。运行上述脚本,重返数字1到5,然后终止。

#!/bin/sh
int=1
while(( $int<=5 ))
do
        echo $int
        let "int++"
done

输出:

1
2
3
4
5

动用中动用了 Bash let
命令,它用来实施一个或多少个表达式,变量计算中不需求添加 $
来表示变量,具体可查看:Bash let
命令
。while循环可用于读取键盘音信。上面的事例中,输入音信被装置为变量FILM,按<Ctrl-D>截至循环。

echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的电影名: '
while read FILM
do
    echo "是的!$FILM 是一部好电影"
done

输出:

按下 <CTRL-D> 退出
输入你最喜欢的电影名: w3cschool菜鸟教程
是的!w3cschool菜鸟教程 是一部好电影

澳门金沙国际 2

最好循环

极致循环语法格式:

while :
do
    command
done

或者

while true
do
    command
done

或者

for (( ; ; ))

 

until 循环

until循环执行一多元命令直至条件为真时为止。
until循环与while循环在处理格局上刚刚相反。
诚如while循环优于until循环,但在少数时候—也只是极个别处境下,until循环尤其使得。
until 语法格式:

until condition
do
    command
done

原则可为任意测试条件,测试发生在循环末尾,因而循环至少实施五回—请留意那或多或少。


for循环语句
  语法格式1:

case

Shell
case语句为多接纳语句。可以用case语句匹配一个值与一个格局,若是合作成功,执行相匹配的下令。case语句格式如下:

case 值 in
模式1)
    command1
    command2
    ...
    commandN
    ;;
模式2)
    command1
    command2
    ...
    commandN
    ;;
esac

case工作章程如上所示。取值后边总得为单词in,每一方式必须以右括号为止。取值可以为变量或常数。匹配发现取值符合某一格局后,其间所有命令开首推行直至
;;。
取值将检测匹配的每一个形式。一旦方式匹配,则执行完匹配形式相应命令后不复接续别的格局。倘若无一匹配情势,使用星号
* 捕获该值,再实施前面的通令。
下边的台本提醒输入1到4,与每一种形式开展匹配:

echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

输入差其余内容,会有区其他结果,例如:

输入 1 到 4 之间的数字:
你输入的数字为:
3
你选择了 3

for 变量 in 值1 值2 ... 值n
do
 语句1
 语句2
 ...
 语句n
done

跳出循环

在循环进程中,有时候须求在未达标循环为止条件时强制跳出循环,Shell使用四个指令来贯彻该意义:break和continue。

  语法格式2:
  常用于终端命令提醒符中

break 命令

break命令允许跳出所有循环(终止执行前面的保有循环)。
下边的例子中,脚本进入死循环直至用户输入数字高于5。要跳出那一个轮回,返回到shell提醒符下,需求利用break命令。

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字:"
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
            break
        ;;
    esac
done

推行以上代码,输出结果为:

输入 1 到 5 之间的数字:3
你输入的数字为 3!
输入 1 到 5 之间的数字:7
你输入的数字不是 1 到 5 之间的! 游戏结束
for 变量 in 值1 值2 ... 值n;do 语句1;语句2... done;

continue

continue命令与break命令类似,唯有几许异样,它不会跳出所有循环,仅仅跳出当前轮回。
对地点的事例进行改动:

#!/bin/bash
while :
do
    echo -n "输入 1 到 5 之间的数字: "
    read aNum
    case $aNum in
        1|2|3|4|5) echo "你输入的数字为 $aNum!"
        ;;
        *) echo "你输入的数字不是 1 到 5 之间的!"
            continue
            echo "游戏结束"
        ;;
    esac
done

运作代码发现,当输入大于5的数字时,该例中的循环不会终结,语句 echo “Game
is over!” 永远不会被执行。


for死循环
  语法格式:

esac

case的语法和C
family语言差距很大,它需求一个esac(就是case反过来)作为完毕标记,每个case分支用右圆括号,用三个分店表示break。

for ((;;))

 

while循环语句
  用于不断实施一文山会海命令。
  语法格式:

while 条件
do
 语句
done

  while死循环
  语法格式1:

while :
do
 语句
done

  语法格式2:

while true
do
 语句
done

 

澳门金沙国际 3

结果

澳门金沙国际 4

 

until循环
  和while循环类似,只可是while是值为真继续执行,而until则是值为假继续执行。
  语法格式:

until 条件
do
 语句
done

 

case拔取语句
  case取值前面总得是in,每一形式必须以右括号甘休。匹配发现取值符合某一形式后,其间所有命令开端执行直到遇见
;;截止。
  如若无一匹配格局,使用星号 * 捕获该值,再进行后边的指令。
  语法格式:

case 值 in
模式1)
语句1
...
语句n
;;
模式2)
语句1
...
语句n
;;
esac

  case的语法中要求一个esac(就是case反过来)作为完毕标记,每个case分支用右圆括号,用三个分店表示break

澳门金沙国际 5

结果

澳门金沙国际 6

 

 

break命令
  break命令是跳出所有循环即截止执行后边的保有循环

continue命令
  continue命令是跳出当前轮回,可是不会跳出所有循环,仅仅跳出当前巡回,并且实施下一个循环

 

相关文章