shell编程总结及感悟

Shell编程

Shell常用通配符:

*:匹配0个或多个字符

?:匹配任意一个字符

[list] :匹配list中的任意单一字符

[!list]:匹配出list中的任意单一字符以外的字符

[c1-c2] :匹配c1-c2中的任意单一字符

[string1,string2,…]:匹配string1,string2(或更多)其一字符串

[c1..c2]:匹配才-出中的全部字符

Shell的位置变量

¥0:表示这个程序的文件名

$1$2 … $9:表示程序从第一个到第九个命令的参数值

$#:这个程序的参数个数(不包含命令名)

$*:把这个陈旭的所有参数:“$1 $2 … $9”,把所有参数保存在一个数组中

$!:执行上一个背景指令的PID

$?:执行上一个命令的返回值

$$:这个程序的进程ID号

if 语句

1、 一个条件判断

if[条件判断式]

then    当条件判断成时,可进行命令执行

else    当条件判断不成立时,可进行命令执行

fi       关闭if标签

2、 多个条件判断(if…elif… else) 可分多种不同情况执行

if[条件判断式1]; then

                                           当条件判断式1成立时,可执行命令

elif[条件判断式2] then

                                           当条件判断式2成立时,可执行命令

fi

case语句

case字符串 in

模式字符串1)命令

                       …

                       命令;;

模式字符串2)命令

                       …

                       命令;;

模式字符串n)命令

                       …

                       命令;;

esac          关闭case标签

注:case语法中,是以case为开头的,而期结束为esac(反写)。此外,对每个变量内容的程序段最后都需要加两个分号(;;)来表示该程序段的结束。至于这个变量的内容最后使用*,是因为如果用户输入第一个获第二个变量内容时,可告知相关信息。

while语句

while[condition] < === 中括号内的状态就是判断式

do              < === 程序的开始

                                           程序段落

done            < === 循环结束

当中括号中的条件不成立时,循环停止

until[condition] < === 中括号内的状态式判断式

do              < === 循环的开始

                                           程序段

done            < === 循环结束

until循环语句while循环相反,当中括号里的条件成立时,结束循环

for语句

for((初始值;限制值; 执行步长))

do              < === 循环开始

                                           程序段

done            < === 循环结束

这种语法时刻于数值方式运算当中


1、for循环的两种方法

(1)

for((i=1;i<=9;i++))

do

for((j=1;j<=i;j++))

 do

echo -ne"$i*$j=$((i*j))\t"

done

Echo

done


 

(2)

for i  in {1,2,3,4,5,6,7,8,9}

do

    for j in {1,2,3,4,5,6,7,8,9}

    do

        ((p=$i*$j))

        echo -ne $i\*$j=$p"\t"

    done

echo

done    


2、while的表示方法

i=1;

j=1;

while((i<=9))

do

 while((j<=i))

 do

  let "temp=i*j"

  echo -ne "$i*$j=$temp\t"

  let j++

  done

  let i++

  let j=1

  echo ""

Done


3、until的表述方法

i=1

until ((i>9))

do

 let j=1

 until ((j>i))

 do

 let "temp=i*j"

 echo -ne "$i*$j=$temp\t"

 let j++

done

 let i++

 echo ""

done


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值