shell--流程控制

来源:互联网 发布:梦幻西游数据号怎么弄 编辑:程序博客网 时间:2024/06/12 19:40

l  if语句

bash流程控制不可为空,else分支没有语句执行,就不写else

if condition1

then

    command1

elif condition2

then

    command2

else

    commandN

fi

l  for循环

for var in item1 item2 ... itemN

do

command1

command2

...

commandN

done

l  while语句

int=1

while(( $int<=5 ))

do

echo $int

let "int++"

done

 

echo '按下 <CTRL-D>退出'

echo -n '输入你最喜欢的电影名: '

while read FILM

do

echo "是的!$FILM是一部好电影"

done

l  until

until循环执行一系列命令直至条件为真时停止。

until condition

do

command

done

l  case语句

case in

模式1)

    command1

    command2

    ...

    commandN

    ;;

模式2

    command1

    command2

    ...

    commandN

    ;;

esac

【shell函数】

[ function ] funname [()]

{

   action;

   [return int;]

}

普通函数

demoFun(){

    echo "这是我的第一个 shell函数!"

}

有返回值的函数

funWithReturn(){

    echo "这个函数会对输入的两个数字进行相加运算..."

    echo "输入第一个数字: "

    read aNum

    echo "输入第二个数字: "

    read anotherNum

    echo "两个数字分别为 $aNum $anotherNum !"

    return $(($aNum+$anotherNum))

}

funWithReturn

echo "输入的两个数字之和为 $? !"

l  函数返回值在调用该函数后通过 $? 来获得

函数参数

funWithParam(){

    echo "第一个参数为 $1 !"

    echo "第二个参数为 $2 !"

    echo "第十个参数为 $10 !"

    echo "第十个参数为 ${10} !"

    echo "第十一个参数为 ${11} !"

    echo "参数总数有 $#!"

    echo "作为一个字符串输出所有参数 $* !"

}

funWithParam 1 2 3 4 5 6 7 8 9 34 73

 

当n>=10时,需要使用${n}来获取参数。


【文件包含】

可包含外部脚本。

. filename #中间必须有空格

Source filename

l  被包含的文件不需要可执行权限


1 0