鸟哥的Linux私房菜 学习笔记 第13章

shell script

第一行 #!bin/bash 声明这个 script 使用的 shell 名称

其他行的 # 表示注释

数值运算

declare -i aa

aa=5+6

let bb=1+8

cc=$((5+8)) echo $cc

返回值

命令如果执行成功,返回值为0,如果执行失败,返回非0值

echo $? 查看返回值

数值的比较

数字比较 -eq -gt -ge -lt -le

字符比较 ==   >   >=  < <=

比较方法 test 或[ ]

aa=3 bb=4 test $aa -eq $bb 或 [ $aa -eq $bb ] echo $?

[ $aa -eq $bb ] && echo OK

判断

[ -f /etc/passwd ] 判断文件是否存在 [ -x /etc/passwd ] 判断文件是否可执行

[ -r /etc/passwd ] 判断文件是否可读 [ -w /etc/passwd ] 判断文件是否可写

if判断

if [ 条件判断式一 ]; then

if [ 条件判断式二 ]; then

else

fi

在脚本中加入set -x 命令进行排错

case判断

case $变量名称 in         
    "第一个变量内容")                  
        程序段                  
        ;;         
    "第二个变量内容")                  
        程序段                  
        ;;        
    *)         
        exit 1         
        ;;
esac
select xx in 'ls -l' pwd date
do 
    $xx
done

function功能

#不写function也可以
function xx () {
    echo myfunction
}
xx

循环(loop)

sum=0
while [ "$sum" -lt 10 ]
do
        let sum+=1
        echo $sum
done
xx=0
until [ "$xx" -gt 24 ]
do
        case "$xx" in
                [0-9]|1[01])
                        echo "morning"
                        ;;   
                12)
                        echo "lunch"
                        ;;
                1[3-7])
                        echo "afternoon"
                *)
                        echo "everning"
        esac
        let xx+=1
done
            
for var in con1 con2 con3
do
    程序段
done
#第3次循环时var值为con3
发布了48 篇原创文章 · 获赞 29 · 访问量 9775

猜你喜欢

转载自blog.csdn.net/flyconley/article/details/103129991