shell从入门到放弃第二天

括号的区别(只说几个常用的)

(( ))不支持-eq 这类的运算符
$( )执行shell命令,与反撤号等效
$(( ))简单算数运算,等效为$[ ]
{ }对逗号,…等起作用,比如创建文件touch{1…5}

$0 当前脚本的文件名
$? 上个命令的退出状态,或函数的返回值。退出状态是一 个数字,如是0,则执行成功,失败则为其它数字
$* 传递给脚本和函数的所有参数
$# 传递给脚本或函数的参数个数
$n 传递给脚本或函数的参数,n代表第几个参数

  • read用法
    -p 等待提示输入
    -t 设置等待时间
    -e 隐藏输入内容
  1 #!/bin/bash
  2 read -p "please input your name:" name
  3 echo "name is $name"
  4 read -p "please input your age:" age
  5 echo "age is $age"
  6 
~                                                                                                           
~             

显示效果:
在这里插入图片描述

在这里插入图片描述
一、if 条件判断语句

1.单分支结构
if 条件表达式;then
命令 1
命令 2

fi
2.双分支结构
if 条件表达式;then
命令 1
命令 2

else
命令 1
命令 2

fi
3.多分支结构
if 条件表达式;then
命令 1

elif 条件表达式;then
命令 1

elif 条件表达式;then
命令 1

else
命令 1

fi

条件表达式的两种写法:

  1. [ ]
  2. command

二、for 循环

  1. for 变量 in 范围列表
    do
    命令 1
    命令 2

    done
    2.范围列表
  2. seq
  3. {}
  4. 1 2 3 4 5

三、while 循环

1.while 条件表达式
do
命令 1
命令 2

done
2. 条件表达式
1.[]
2. true
3. 读取文本内容
cat 文本 | while read line
do
echo “$line”
done
4. while 死循环通常被用于在后台运行持续监控或者检测某项服务。
5. 后台运行脚本

  1. bash 脚本名称 & (这种用法关掉当前终端就停掉了脚本)
  2. nohup bash 脚本名称 & (关掉终端不会停掉脚本)
    脚本输出会被重定向到当前目录下的 nohup.out 文本中
  3. 查看后台运行
    jobs
  4. bash 脚本名称 &: 停止此种脚本有三种方法
  5. 直接关掉当前终端
  6. ps aux 找到该脚本的 PID,然后使用 kill -p PID
  7. 使用 jobs 命令查看该脚本的序列号,然后使用 kill -9 %序列号
  • if语句
if 条件表达式; then
命令
fi

例子:检查主机是否在线

#!/bin/bash
if ping -c 1 192.168.1.1 >/dev/null; then 
  echo "OK."
else
  echo "NO!"
fi                                                                                                                                                                                                           
  • for语句
    格式:
for 变量名 in 取值列表;do
  命令
done
或者
for 变量名 in 取值列表;do
  命令
  done

例子1:编写脚本创建查看早中晚

  1 #!/bin/bash
  2 for time in morning afternoon evening
  3 do
  4 echo "this time is $time"
  5 done
~          

例子2:求和1到10

  1 #!/bin/bash
  2 s=0
  3 for((i=1;i<=10;i=i+1))
  4 do
  5 s=$(($s+$i))
  6 done
  7 echo "the sum is $s"      
  • while语句
    格式:
while 条件表达式; do
    命令
done

例子:检测终端数量

#!/bin/bash
while true
do
    num=`who | wc -l`
    echo "当前打开终端数量为:$num"
    sleep 5
done
复制代码
  • case语句
    格式:
case 模式名    in
模式 1)
  命令
  ;;
模式 2)
  命令
  ;;
*)
  不符合以上模式执行的命令
esac
复制代码

例子:自己看把

 1 #!/bin/bash
  2 read -p "please choose yes/no:" cho
  3 case $cho in "yes")
  4         echo "your choose is  yes";;
  5 "no")
  6         echo "your choose is no";;
  7 esac

未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值