【博学谷学习记录】超强总结,用心分享 | shell编程

 #博学谷IT技术支持#

一、shell的运算符

shell变量是一种很弱的变量,默认一个变量保存一个串,shell不关心这个串的含义,所以如果要进行数学运算,必须使用如let、declare、expr、双括号等。

a=10
b=20

#求两个数的和
echo `expr  $a + $b`    #方式1-1,运算符两边必须留空格,而且变量必须加$
echo  $(expr $a + $b)  #方式1-2, 运算符两边必须留空格, 而且变量必须加$

echo $((a+b))          #方式2,运算符两边没有要求
echo $[a+b]            #方式3,运算符两边没有要求  !!!!!

二、shell的流程控制语句

  • if语句

#1)以下实例判断两个变量是否相等:
#!/bin/bash 

read -p "请输入a的值:"  a 
read -p  "请输入b的值:"  b

if [ $a -eq $b ] 
then 
	echo "a 等于 b" 
elif [ $a -gt $b ] 
then 
	echo "a 大于 b" 
elif [ $a -lt $b ] 
then 
	echo "a 小于 b" 
else 
	echo "没有符合的条件" 
fi

#2)输入成绩,判断成绩“优”“良”“中”
#!/bin/bash
read -p "Enter your score(0-100):" n #-p参数表示给出提示信息
if [ $n -ge 85 ] && [ $n -le 100 ] ; then
 echo "优"
elif [ $n -ge 70 ] && [ $n -le 84 ] ; then
 echo "良"
elif [ $n -ge 60 ] && [ $n -le 69 ] ; then  
 echo "中"
else
 echo "差" 
fi
  • while语句

--------1)输出1-5之间的数字------------
#!/bin/bash
num=1
while [ $num -le 5 ]
do
    echo $num
    let num++
done

-------2)求1-100的和-------------
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
  let sum+=i
  let i++
done
echo $sum
  • case语句

#!/bin/bash

read -p "请输入你的选择(1-3):" num

case $num in
  1) 
   echo "你选择了1"
  ;;
  2)
   echo "你选择了2"
  ;;
  3)
   echo "你选择了3"
  ;;
  *)
   echo "你选择了其他"
  ;;
esac

------case的穿透-----------------
#!/bin/bash

read -p "请输入你的选择(1-3):" num

case $num in
  1|2|3) echo "你选择了1或2或3"
    ;;
  *)
   echo "你选择了其他"
  ;;
esac

 三、shell的数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

与大部分编程语言类似,数组元素的下标由0开始。

shell 数组用括号来表示,元素用空格分割开。

  1. 数组定义:array=("hello" "java"  "mysql" "shell" "linux")
  2. 访问数组元素:echo ${array[3]}
  3. 将数组所有元素转为字符串输出:echo ${array[*]}
  4. 获取数组的长度:echo ${#array[*]}
  5. 遍历数组:
echo "----------方式1-------------"

for str in ${array[*]}
do
 echo $str
done

echo "----------方式2-------------"
len=${#array[*]}

for((i=0;i<len;i++))
do
  echo ${array[$i]}
done

四、select语句

select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择。

#!/bin/bash

echo "你要进行什么操作?"
PS3="请输入你选择:"
select var in "启动" "停止" "重启"
do
  case $var in
   "启动") 
     #执行启动命令
     ;;
   "停止")
    #执行停止命令 
    ;;
   "重启")
    #执行重启命令
  esac
 break;
done

echo "正在进行 $var 操作..........."
sleep 3

注意:这里PS3作为select语句的shell界面提示符,注意:PS3一定要定义在select语句的前面。

运行结果如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值