shell 脚本编程要点

1、shell中的特殊字符
#      注释
;       命令分割符,可以将多个语句放在一行执行
''      单引号,在单引号总无法引用变量
""     双引号,类似'',但支持变量替换
··       tab键上方那个,用于引用命令的执行结果

2、变量

变量定义:declare varName

变量赋值: varName=

变量值引用: $varName

导出变量: export varName[=value]

撤销变量: unset varName

特殊变量:

    $?:     返回上一条命令的状态返回值

    $1,$2... $9:    位置变量,第10个变量需要这样引用  ${10}

    $#:     脚本传入的所有参数个数

    $*,$@:    返回脚本传入的所有参数


1. $# 传递到脚本的参数个数

2. $* 以一个单字符串显示所有向脚本传递的参数变量。与位置变量不同,此选项参数可超过9个

3. $$ 脚本运行的当前进程ID号

4. $! 后台运行的最后一个进程的进程ID号

5. $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数

6. $- 显示shell使用的当前选项,与set命令功能相同

7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

8. $()里面放命令,可以在脚本中执行该命令,并返回命令执行的输出.


3、条件测试

使用格式:

    test EXPR

    [ EXPR ]

    [[ EXPR ]]


4、输入输出和重定向

标准输入:   0 默认设备为键盘

标准输出:    1 默认设备为显示器

标准错误输出:   2 默认设备为显示器

>:             覆盖输出 

&>:       错误覆盖输出

>> :         追加输出 

&>>:    错误覆盖输出

&>:        合并重定向

<:           输入重定向

<<:        此处文档

tee:       分流,将结果输出到屏幕并重定向


6、常用语法结构

条件判断

语法格式

示例

单分支if语句

if 语句1;then

语句1执行结果为真则执行

else

语句1执行结果为假则执行

fi

 

1
2
3
4
5
6
7
8
#!/bin/bash
a=1
b=1
if  [ $a - eq  $b ]; then
echo  "yes"
else
echo  "no"
fi

多分支if语句

if 语句1;then

语句1执行结果为真则执行

elif 语句2;then

语句2执行结果为真则执行

...

else

所有条件都不满足时执行

fi

 

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
a=1
b=2
if  [ $a -gt $b ]; then
echo  "a>b"
elif  [ $a -lt $b ]; then
echo  "a<b"
else
echo  "a=b"
fi

循环结构

for varName in LIST;do

循环体

done

1
2
3
4
#!/bin/bash
for  in {1..10}; do
echo $i
done

for ((var=#;测试条件;修正条件));do

循环体

done

1
2
3
4
#!/bin/bash
for  ((i=1;i<=10;i++)); do
echo $i
done

while 条件语句;do #条件为真时进入循环

循环体

done

1
2
3
4
5
#!/bin/bash
while  who | grep “^gentoo”; do
echo “gentoo is not login”
sleep  3
done

until 条件语句;do

循环体

done

1
2
3
4
5
#!/bin/bash
while  who | grep  “^gentoo”; do
echo “gentoo is not login”
sleep  3
done

条件选择

case $varName in

exp1)

语句体1 ;;

exp2)

语句体 2 ;;

...

*)

语句体 n ;;

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
tmp=y
case $tmp in
y| yes )
echo yes  ;;
n|no)
echo no ;;
*)
echo “unknown”
esac

7、一些讲解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值