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