Shell脚本常见用法

1.shell介绍
    通常所说的shell就是shell脚本,它是一门脚本语言,弱类型

2.shell规范
    第一行内容为#!/bin/bash
    #注释
    是以.sh结尾的文件

3.shell语法
    变量
        定义
        释放变量
        变量值如果有空格,需要加引号
                "" :输出变量对应的值
                '':原样输出
                ``:定义命令变量时需要使用``
   

命名规范
        输出变量:echo $变量名
        输入:read 变量名
            read -p "提示信息" 变量名

样例 :   

#!/bin/bash
#输入目录
read -p "请输入目录:" dir
#进入etc目录下
cd $dir
filenum=`ls -l|wc -l`     //查看当前路径下有多少个文件
echo "该目录下有$filenum个文件"
  

 向文件传递参数:
        $1--->传递第一个参数
        $2---->....
        $3--->....
        $n---->......
        $0:显示的是文件名称
        $@:显示所有的参数
        $#:显示的参数的个数

#!/bin/bash
echo "这个数据是$1"
echo "这个数据是$2"
echo "这是$0"
echo "这是$@"
echo "这是$#"

重定向:将内容保存到文件中
        正确命令: 用数字1表示, >覆盖,>>追加
        错误命令:用数字2表示,>覆盖,>>追加
    

程序的结构
        

分支结构:
            if...else分支:
                逻辑运算符:-a -o !
                比较运算符:-ge -gt -lt -le -eq -ne
                测试文件的状态:test 参数 文件名
                字符串判断:== ,!=
                文件判断:-d  -e -f  -w -r -x .....
            if...elif...else分支

#!/bin/bash
read -p "请输入目录:" dir
d=`ls $dir`
if [ "$d" == "" ];then
    echo "目录为空"
else
    echo "目录不为空"
fi

#!/bin/bash
#提示用户输入用户明和密码
read -p "请输入你的用户名和密码:" username passwd
#进行判断
if [ "$username" == "admin" -a "$passwd" == "123456" ]
then
    echo "登录成功"
else
    echo "登录失败"
fi

#!/bin/bash
#输入数字
read -p "please input a num:" num
#判断
if [ "$num" -gt 0 ]
then
    ((num--))
    echo $num
else
    ((num++))
    echo $num
fi

#!/bin/bash
#提示用户输入
read -p "请输入一个目录:" dir
#进行判断 ,判读目录是否存在
if test -d $dir
then
    
#统计文件的个数
    filenum=`ls -l $dir|wc -l`
    echo "目录$dir下的文件个数为$filenum"
else
    echo "目录不存在"
fi
 

#!/bin/bash
#提示用户输入分数
read -p "请输入你的分数:" score
#进行判断
if [ "$score" -ge 90 -a "$score" -le 100 ]
then
    echo "优秀"
elif [ "$score" -ge 80 -a "$score" -lt 90 ]
then
    echo "良好"
elif [ "$score" -ge 70 -a "$score" -lt 80 ]
then
    echo "一斑"
elif [ "$score" -ge 60 -a "$score" -lt 70 ]
then
    echo "及格"
else
    echo "西西睡把"
fi
 

#!/bin/bash
#提示用户输入
read -p "请输入内容:" con
if [ -z "$con" ]
then
    echo "为空"
elif [ -d "$con" ]
then
    echo "是目录"
elif [ -f "$con" ]
then
    echo "是文件"
else
    echo "错误"
fi
 

case分支:
                注意:
                    1.case这一行的最后为in
                    2.;;表示语句的结束
                    3. *:表示默认
                    4.esac:表示case语句结束
                    5.值:可以是字符串、数字、还可是区间范围【0-9】之间
#!/bin/bash
#提示
read -p "请输入产品:" pro
case $pro in
"A")
    echo "笔几本";;
"B")
    echo "电凡报";;
"C")
    echo "小台灯";;
esac

#!/bin/bash
#提示
read -p "请做出平价:" pj
case $pj in
[0-3])
    echo "不满意";;
[4-6])
    echo "满意";;
[7-9])
    echo "非常满意";;
esac     

循环结构
            for循环
                格式:for 变量名 in 列表
                      do
                    语句
                      done
                命令:seq start size max

#!/bin/bash
#循环
for i in 1 2 3 4 5 6 7 8 9 10
do
    echo $i
done
   

#!/bin/bash
#循环
for i in `seq 1 10`
do
    echo $i
done
 

变量:变量名=变量值--->没有空格
        变量名不能以数字开头,字母数字、下划线组成
        特殊变量:含有空格:需要引号:双引号、单引号、反单引号
        输出变量:echo $变量名
        

输入:read 变量名--->变量名可以有多个,如果给变量赋值时,超过变量的个数,这个时候把多余的变量值赋值最后一个变量
              read -p "提示信息" 变量名
    

参数的传递:
        .sh文件如何接收参数:
            $1/$2....
            $0:显示的文件名称
            $@:显示所有的参数
            $#:显示的是参数的个数
    

重定向:可以把命令输出到文件中
        正确命令:用1表示,用法:命令 1>文件名  命令 1>>文件名
        错误命令:用2表示,用法:命令 2>文件名  命令 2>>文件名
    

程序结构
        分支
            if..else分支
            if...elif...else分支
            case分支
            逻辑运算符:-a -o !
            数字比较运算符: -eq/-ne/-gt/-ge/-lt/-le
            字符串比较:==  !=
            文件状态测试:test 参数 变量名
            文件判断:-参数 变量名
            
        循环:
            for循环
              

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值