linux shell脚本介绍

变量

变量名=变量值 a=10 (如果字符串里面有空格,就需要用引号)
unset 变量名 撤销变量
export 变量名 会把变量提升为全局变量
readonly B=2 申明B为只读变量,不能unset

如果把一个命令的结果作为一个变量存储,需要把命令用 “`”括起来。波浪线那个键。
如:

    args=`ls -la`

还有另外一种赋值的方式为:args=$(ls -la)

特殊变量

$? 表示上一个命令的状态 输出0表示上一条命令成功执行,返回大于0表示上一条命令失败 
$?可以7用于判断上一个命令是否执行成功
$$ 表示当前进程编号
$0 表示获取当前脚本名称
$n 表示n位置的输入参数(n>=1) 用于获取脚本后面跟的参数
$# 表示参数的个数,常用于循环
$*$@都表示参数列表

循环

第一种for循环
for N in 1 2 3
do 
    echo $N
done
或者
for N in 1 2 3;do echo $N;done
或者
for N in{1..3};do echo $N;done
上面的意思是循环一个列表

-------------------------
第二种for循环
for((i=0;i<=5;i++))
do
    echo "hello $i world"
done
或者
for((i=0;i<=5;i++));do echo "hello $i world";done

-------------------
第一种while循环
while expression
do
command
...
done

举例
while [ 2 -gt 1 ]; do echo aaa;done
当2>1执行输出aaa 会一直执行

--------------
第二种while
int=1
while ((int<=3))
do
echo $int
let int++
done
-----------------------------
case语句
 case $1 in
 start) #case值为start的时候执行
     echo "starting"
     ;;
stop) #case值为stop的时候执行
    echo "stoping"
    ;;
*)  #都不匹配的时候执行
    echo "Usage:{start|stop}"
esac

运算符

expr m+n 或者$((m+n))  eg:aa=`expr 2+3` echo aa  结果是5

建议用echo $(((2+3)*4))  计算(2+3)*4

read 命令

read是从终端交互式的获取输入参数
read -p(提示语句)-n(字符个数)-t(等待时间)

[root@node1 shell]# read -p "please enter a number:" numb
please enter a number:1
[root@node1 shell]# echo $numb
1

判断

if condition
then
    statements
[elif condition
then statements...]
[else
    statements]
fi

例子

#!/mnt/myDir/shell
read -p "please input your name:" NAME
#printf '%s\n'$NAME
if [ $NAME = root ]
then
        echo "hello ${NAME},welcome!"
elif [ $NAME = itcast ]
then
        echo "hello ${NAME},welcome!"
else
        echo "love you !"
fi
要注意前后的空格

另外一种写法
[condition] && echo ok 表示的是条件满足的时候执行
[condition] && echo ok || echo false 条件满足执行ok 条件不满足执行flase

常用判断条件

-r 有读的权限
-w 有写的权限
-x 有执行的权限
-f 文件存在并是一个常规的文件
-s 文件存在且不为空
-d 文件存在且是一个目录
-b 文件存在且是一个设备
-L 文件存在并是一个链接
如[ -f test.txt ] test.txt文件是否存在

自定义函数

[function] funcname [()] #函数无参数
{
#函数体
action;
[return int;]
}

function start() 或者 function start 或者start()

函数列子:

function fSum()
{
  echo $1,$2;
  return $(($1+$2));
}
fSum 7 5 # 7 5是函数要传递进去的参数

脚本的调试

sh -vx helloWorld.sh 会展示出脚本执行过程中的每一步
或者在脚本中set -x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值