shell脚本

1、特定开头,指明此shell使用哪个shell对其进行解释执行。
#!/bin/bash

2、shell脚本的执行
   赋予权限    chmod +x xxx.sh    或者  chmod 755 xxx.sh
    指定shell    bash xxx.sh
   使用"." 或者 “source”执行脚本      .  xxx.sh  或者   source xxx.sh

3、交互式脚本,需要中途用户输入数据
    read [ -p "描述字符串" ]  变量名
PS:  若使用-p参数时, 变量名要与前面的字符串至少一个空格,否则会发生错误。
=======
read -p "please input your name:” username
echo "hello , your name is $username"
=======
please input your name:erho
hello , your name is erho

4、变量的数值运算
1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算;
2)Linux shell 中使用 expr 与 bc 两个程序实现高级运算;
常规情况下,shell脚本可以使用如“+” “-” “*” “/” “,”  等运算,但shell下的变量默认都是字符串,直接运算会发生错误。
这里需要declare命令,定义变量时将其声明为整形

$ num1=10
$ num2=120
$ num3=$num1+$num2
$ echo $num3
10+120
====
declare -i num3=$num1+$num2
echo $num3
130

5、脚本逻辑判断与表达式
test 条件   或    [ 条件 ]

                                        test命令运算符详细列表
对字符串进行判断
运算结果
string1 = string2判断string1是否等于string2,如果相等,返回真
string1 != string2判断string1是否不等于string2,如果不等于,返回真
-z string判断string长度是否为零,如果为零,返回真
-n string判断string长度是否不为零,如果不为零,返回真
对整数进行判断
运算结果
int1 -eq int2判断两个整数是否相等,如果相等,返回真
int1 -ne int2判断两个整数是否不等,如果不等,返回真
int1 -gt int2判断int1是否大于int2,如果大于,返回真
int1 -ge int2判断int1是否大于等于int2,如果是,返回真
int1 -lt int2判断int1是否小于int2,如果小于,返回真
int1 -le int2判断int1是否小于等于int2,如果是,返回真
对文件存在或者类型进行判断
判断结果
-e判断文件是否存在,如果存在,返回真
-b判断文件是否是块设备文件,如果是,返回真
-c判断文件是否是字符设备文件,如果是,返回真
-f判断文件是否是个普通文件,如果是,返回真
-d判断文件是否是个目录,如果是,返回真
-L判断文件是否是个链接文件,如果是,返回真
对文件属性进行判断
判断结果
-s判断文件是否不是空白文件,如果不是,返回真
-r判断文件是否可读,如果是,返回真
-w判断文件是否可写,如果是,返回真
-x判断文件是否可执行,如果是,返回真
-u判断文件是否设置了SUID,如果是,返回真
-g判断文件是否设置了SGID,如果是,返回真
-k判断文件是否设置了sticky bit属性,如果是,返回真
两个文件的比较
判断结果
file1 -nt file2判断file1是否比file2新,如果是,返回真
file1 -ot file2判断file2是否比file1新,如果是,返回真
逻辑判断
判断结果
条件1 -a 条件2当条件1和条件2同时为真时,返回真
条件1 -o 条件2当条件1和条件2只要有一个为真,则返回真
! 条件1
当条件1为真时,返回假


6、条件判断if语句
if [  条件  ]
then
命令 1
命令 2
fi
if [ 条件 ]; then
命令 1
命令 2
fi
空格 非常重要如果写成一行,如上


多重判断,嵌套判断
if [ 条件 ]; then
命令 1
命令 2
......
else
命令 3
命令 4
......
fi
if [ 条件1  ]; then
命令 1
......
elif [ 条件2 ]; then
命令 2
......
elif [ 条件3 ]; then
命令 3
......
else
命令 4
......
fi
if [ 条件 ]; then
   if [ 条件 ]; then
  命令 1
  ......
  else
命令 2
......
   fi
else
命令 3
......
fi


7、case命令

case   变量值  in
值 1 )
        命令 1
         ;;
值 2 )
        命令 2
         ;;
.......
*)
        命令n
         ;;
esac


8、循环
   bah 中 有三种循环,分别是 for 循环、while循环 和 until循环。

for   自定义变量 in  变量1  变量2  变量3  ......
do
    命令
done
PS: 依次将变量1、变量2、变量3赋值给自定义变量执行 命令,直到变量列表全部赋值完毕。

while  [  条件  ]
do
    命令
done
PS:当条件为真,执行命令,直到条件为假才退出循环

until  [  条件  ]
do
    命令
done
PS:跟while恰好相反,当条件为假,执行命令,直到条件为真才退出循环

9、continue  语句 和 break 语句
以上两个都是为了跳出循环。
continue 作用是跳出本次循环,但还是接着执行当前的循环语句。
break 作用是跳出循环体,继续循环体后面的语句。


10、exit 命令
结束本脚本文件的运行,一般用于退出脚本时使用。

11、函数:主要是解决重复的代码
function   函数名 ()
{
        命令 1
        命令 2
}

#!/bin/bash
shopt -s  extglob
rm -rvf bbb/!(ccc|ddd)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值