Linux shell脚本

Linux shell脚本基础

一、

1.如何从键盘获取一个变量的值?

方式1: echo 语句进行打印体术语句

eg:
echo "请输入一个数:"
read name
echo "输入的这个数是$name"

 

方式2:read -p "提示性语句" 变量名  

eg:read -p "请输入一个数:"  num1

echo "输入的这个数是$num1"

2.通配符的转义

软转义:带双引号即是软转义,只允许出现特定的shell元字符,以及关闭掉通配符的含义

硬转义:带单引号就是硬转义,即会去掉 shell元字符的含义或者通配符的含义

转义字符:(以\开头)会去掉shell元字符的含义或者通配符的含义

3.算术运算命令

expr的命令:可以实现算数运算的功能------>>加、减、乘、除、取余

eg:#实现两个数相加

read -p "请输入要计算的两个数字:" num1 num2

add=`expr $num1 + $num2`
echo "$num1 + $num2 = $add"
# exho "$num1 + $num2 = `expr $num1 + $num2`"

4.测试命令使用形式

(1)test :可以测试的对象有三个:字符串、整数、文件属性

测试命令使用形式:

形式1:test 对象1 对象2

形式2:[ 对象1 对象2 ]

(2)测试字符串

str1 = str2------>>测试两个字符串是否相等

str1 != str2------>>测试两个字符串是否不相等

-z str1       ------>>测试str1这个字符串的长度是否为0

-n str2       ------>>测试str2这个字符串的长度是否不为0

(3)测试整数

num1 -eq num2 ------>>测试两个整数是否相等

num1 -ne num2------>>测试两个整数是否不相等

num1 -gt num2------>>测试num1是否大于 num2

num1 -gt num2------>>测试num1 是否大于等于num2

num1 -lt num2------>>测试num1是否小于 num2

num1 -lenum2------>>测试num1是否小于等于 num2

(4)测试文件属性

-f file1 ---->测试file1是否存在并且为普通文件
-d file1 ---->测试file1是否存在并且为目录文件
-L file1 --->测试file1是否存在并且为链接文件
-r file1 --->测试file1是否存在并且具有可读权限
-w file1 --->测试file1是否存在并且具有可写权限
-x file1 --->测试file1是否存在并且具有可执行权限
-s file2 ----》测试file2是否存在且长度是否为0
file1 -nt file2  --->测试file1是否比file2更新(按照创建时间或者最新一次修改的时间)
file1 -ot file2 ---->测试file1是否比file2更旧(按照创建时间或者最新一次修改的时间)

 

二、结构性语句(分支语句&&循环语句)

1.if 分支语句

            单分支语句             双分支语句                 多分支语句

格式:if  语句块1                  if  语句块1                      if  语句块1

              then                         then                               then

             命令表                       命令表1                      命令表1

           fi                                else                                 elif  语句块2

                                                 命令表2                       then

                                          fi                                        命令表2

                                                                                   ........

                                                                                  else

                                                                                  命令表N

                                                                                 fi

  3.switch_case的脚本格式       

格式:

     case  常量   in
           模式1)
                 命令表1
                 ;;
           模式2)
                 命令表2
                 ;;
           *)
              命令表N
     esac


4.逻辑运算符在脚本中的写法:
-a 代表与
-o 代表或
! 代表非   

 

5.两个案例

案例1:
从键盘获得一个字符串,测试该字符串,如果是普通文件,则显示文件内容,如果是目录文件,则显示详细信息
利用if的多路分支

案例2:
从键盘获得一个成绩,对成绩做一个等级划分
结合case语句来实现

案例1代码:

#!/bin/bash

echo "请输入一个需要检测的字符串"
read string

if [ -f $string]
then
        cat -n $string
elif [ -d $string]
then
        ls -la $string
else
        echo "写错了"
fi

------------------------------------------

案例2代码:

#!/bin/bash

read -p "请输入一个成绩:" cj
#判断成绩是否合法
if [ $cj -lt 0 -o $cj -gt 100 ]
then
echo "成绩违法"
exit

else
op=`expr ${cj} / 10`
case ${op} in
1 | 2 | 3 | 4 | 5)
echo "成绩不及格"
;;
6)
echo "成绩及格"
;;
7 | 8)
echo "成绩一般"
;;
9 | 10)
echo "成绩很优秀"
;;  
esac
fi

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值