快速掌握Shell编程

返回博文首页

作者:Hanson

2021-02-17

搞个代码

基础

1.系统识别及shell版本  #!/bin/bash


2.保存后修改文件执行权限 chmod 755 myShell.sh


3.注释 #注释内容  多行注释 :<<!注释内容。。。!


变量

变量命名不能以数字开头 赋值时=两边不能有空格


1.系统变量 $HOME $PATH 查看所有变量 set


2.定义变量 A=100  使用变量 echo"A=$A"


3.撤销变量 unset A


4.静态变量 readonly A=100 静态变量不能使用unset撤销


5.将命令返回值赋值给变量 A=`ls -la`  或  A=$(ls -la)


6.环境变量(全局变量)


定义环境变量


USER_HOME=/usr/home
export USER_HOME


刷新配置文件 source /etc/profile


7.位置参数变量


$0 执行脚本 


$n 第n个参数 10以上需要使用${10}  


$* 整体输出位置参数 


$@ 分别输出位置参数 


$# 参数个数


8.预定义变量


$$ 当前进程的进程号PID  


$! 后台运行的最后一个进程的进程号PID 


$? 最后依次执行命令返回状态,0则命令执行正确,其他则命令执行不正确


后台运行脚本 ./myShell.sh &  ctrl+c可退出


运算符


1.方式1 RESULT=$(((2+3)*4))


2.方式2(推荐) RESULT=$[(2+3)*4]


3.方式3 TEMP=`expr 2 + 3` RESULT=`expr $TEMP \* 4`


流程控制

1.比较判断符


比较:字符串比较=  小于-lt  小于等于-le  等于-eq  大于-gt  大于等于-ge  不等于-ne  


权限判断:是否有读权限-r  是否有写权限-w  是否有执行权限-x


文件类型判断:文件是否存在-e  是否是常规文件-f  是否是目录-d


2.if条件判断 []中两侧必须有空格,条件为真返回true 反之返回false


if [ 条件语句1 ]
then
    程序1
elif [ 条件语句1 ]
then
    程序2
fi


3.case条件判断


case $1 in
"条件1")
程序1
;;
"条件2")
程序2
;;
*)
不满足之前条件的程序
;;
esac


4.for遍历循环


//遍历
for 变量 in 值1 值2 值3···
do
    程序
done

//循环
SUM=0
for((i=1;i<=100;i++))
do
    SUM=$[$SUM+$i]
done
echo "result=$SUM"


5.while循环


SUM=0
i=0
while [ $i -le $1 ]
do
        SUM=$[$SUM+$i]
        i=$[$i+1]
done
echo "result=$SUM"


read读取控制台输入


带提示信息-p  限时输入-t


read -t 10 -p "Insert a Num" NUM
echo "$NUM"


函数


1.系统函数basename


basename /home/local/test.txt  结果为test.txt


basename /home/local/test.txt .txt 结果为test


2.系统函数dirname


dirname /home/local/test.txt  结果为/home/local


3.自定义函数


function getSUM(){
    SUM=$[$n1+$n2]
    echo "$n1\+$n2=$SUM"
}
read -p "1st Num" n1
read -p "2nd Num" n2
getSUM $n1 $n2


返回博文首页

更多博文

ARTIST     DREAMER     ADVENTURER

京ICP备2020043907号

Designed and developed by Hanson.