Linux学习笔记(6)——shell(3)

一、Shell流程控制

1.if else

(1)if语句语法格式:

if condition

then

   command1

   command2

   …….

   commandN

fi

(2)if else 语法格式:

if condition

then

   command1

   command2

   …….

   commandN

else

   command

fi

(3)if else-if else 语法格式

if condition

then

   command1

   command2

   …….

   commandN

elif

   command

else

   command

fi

2.for 循环

for var in item1 item2…

do

   command1

   command2

   …….

   command

done

3.while 语句

while  condition

do

command

done

4.until循环

until循环执行一系列命令直至条件为真时停止。与while循环的处理方式相反。只是会执行一次。

语法:

until condition

do

   command

done

5.case 语句

case 值 in

模式1)

     Command1

     Command2

     …

     CommandN

     ;;

模式2)

     Command1

     Command2

     …

     CommandN

     ;;

esac

例:

Linux学习笔记(6)——shell(3)_第1张图片

运行结果:

Linux学习笔记(6)——shell(3)_第2张图片

esac 作为结束标记,每个case分支用右圆括号,用两个分号表示break。

6.跳出循环

   break命令 允许跳出所以循环(终止执行后面的所有循环)

   continue命令 与break命令类似,但它不会跳出所以循环,仅跳出当前循环。

二、Shell函数

函数定义格式:

[ function ] funname [ ( ) ]

{

   action;

   [ retuen int ; ]

}

说明:

  •   1.可以写成function fun(),也可直接用fun()定义,不带任何参数。
  •   2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return 后跟数值 n(0-255)

例1:不带 return

Linux学习笔记(6)——shell(3)_第3张图片

执行结果:

例2:带return

Linux学习笔记(6)——shell(3)_第4张图片

执行结果:

Linux学习笔记(6)——shell(3)_第5张图片

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

注意:所有函数在使用前必须定义。在调用函数时仅使用其函数名即可。

函数参数

调用函数时可以向其传递参数。在函数内部通过$n的形式来获取参数的值。

例:

Linux学习笔记(6)——shell(3)_第6张图片

执行结果:

Linux学习笔记(6)——shell(3)_第7张图片

注:$# :传递到脚本的参数个数

$* :以一个单字符串显示所有向脚本传递的参数

三、Shell 输入/输出重定向

重定向命令:

Command > file           将输出重定向到file

Command < file           将输入重定向到file

Command >> file          将输出以追加的方式重定向到file

n > file                  将文件描述符为n的文件重定向到file

n >> file                 将文件描述符为n的文件以追加的方式重定向到file

n > & m                 将输出文件m和n合并

n < & m                 将输入文件m和n合并

<< tag                   将开始标记tag和结束标记tag之间的内容作为输入

注意:文件描述符 0 通常为 标准输入,1是标准输出,2是标准错误输出。

 

你可能感兴趣的:(Linux学习笔记)