简单的shell脚本编程

shell脚本语言是解释型语言其本质是shell命令的有序集合后缀大多为.sh

【编程过程】

1)建立shell文件              vim a.sh

2)赋予权限                  chmod a+x a.sh

3)执行                       ./a.sh [参数]

【shell变量】

注意shell变量没有数据类型   不用提前定义   默认大写

1)用户自定义的变量 

 赋初值:N=1                      注意=两边不允许加空格

 调用:X=$N                       把N的值赋给X

 清空变量:unset  

2)位置变量

$0                              执行时的脚本文件名

$1---$9                         执行时向脚本传递的参数

$#                              执行时输入的参数个数

$@                              所有输入的参数

$$                              正在执行的进程号

$?                              前一命令的退出状态

3)环境变量

在终端下可输入env查看所有的环境变量

【常用功能性语句】

1)read 读入

read N                          与c语言中scanf相同程序执行到此等待用户输入

2)expr 计算

expr[]12[]+[]5[]\*[]3           []替代了空格不能省\*代表乘法

3)test 测试

1]字符串

test $N = "yes"                 N的值是否为yes是为真(0)

       !=                       是否有差异,有为真(0)

test -z s1                      测试s1长度是否为0

    -n

 2]整数

-eq             相等

-ne             不相等

-gt             大于

-ge             大于等于

-lt            小于

-le            小于等于

3]文件

-d            目录

-f            普通

-L            链接

-r            可读

-w            可写

4)tput  打印效果

tput clear        清屏

tput cup 11 23    在11列23行显示

tput rev         反白(白底黑字方便看)

【结构性语句】

1)条件语句

if [ 条件 ]                 if [ 条件 ]             case 变量  in           注意:条件两边都有空格

then                        then                        1)                  有一个if就有一个fi

    .....                       ....                            命令

    .....                       ....                         ;;             ;;相当于break

fi                          elif                     2|3|4)

                            then                              命令

                                ....                           ;;

                                ....                    *)                    相当于default

                             elif                             命令

                             then                              ;;

                                 ....

                                 ....

                               else

                                   .........

                            fi

2)循环语句

for   变量名 in    变量表               while [ 条件 ]

do                                      do

       命令                                   命令

done                                     done

 

for命令的几种方式

#for I in a b c d                              来自变量表
#for I in `ls`                                 来自命令执行结果 `为Esc下面的键
#for I in `seq 10`                             默认初始值为1 步长为1
#for I in `seq 1 10`
#for I in `seq 1 2 10`                         列表1-10步长为2
#for ((I=0; I<10; I++))                       c的方式
#for ((;;))                                   死循环

3)循环控制语句

break                               跳出n层循环

continue n                            跳过n轮循环   当跳到同一层的最后时不在跳

【shell函数】

fun()                                  函数名为fun的无参函数

{

}

调用

fun()

$?          函数的返回值

需要传参时在函数中用$1---$9代替调用时fun(参数列表)

【变量的作用域】

默认为全局变量

加Local可变为局部变量

【调试方法】

在程序中加入

set -x

 

 

set  +x跟踪程序每一步执行的结果

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值