设为首页 加入收藏

TOP

Shell编程语法(一)
2019-09-02 23:33:56 】 浏览:29
Tags:Shell 编程 语法

shell流程控制

流程控制是改变程序运行顺序的指令。linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。

新知识点:

黑洞文件,此文件相当于windows的回收站,不会占我们的磁盘,为什么要导入,这样就会省略过程。

/dev/dull

提示你输入一个东西

read -p

间隔几秒显示

sleep 数字

对输出的结果不显示新行

echo -n 

意思是初始值为0,一般结合let ++使用。

sum=0 

读取每行的内容

read line 

if语句(条件语句)

格式一:

#!/bin/bash

if  [ 条件表达式 ];then

命令(切记用tab键自动缩进一下,后期好排错)

fi

 格式二:

#!/bin/bash

if  [ 条件表达式 ]

then

命令(切记用tab键自动缩进一下,后期好排错)

fi

就是说你的条件表达式满足之后,你想干一些什么事情。

if分为单分支,双分支,多分支三种样式

单分支

if 条件表达式;then             

  命令(按tab键自动缩进一下)

fi

举例:如果你输入的参数是1,那么显示的结果是“您输入的数字是1”(运用到的知识点,shell的特殊变量)

#!/bin/bash

if [ $1 -eq 1 ];then
echo
"您输入的数字是$1"
fi

双分支(当条件表达式里的命令执行不成功时,就会执行else)

if 条件表达式;then

  命令(按tab键自动缩进一下)

else

  命令(按tab键自动缩进一下)

fi

举例:如果输入不是1的其他数字,显示的结果就是“您输入的数字不是1”

if [ $1 -eq 1 ];then
        
        echo "您输入的数字是: $1"

else
       
        echo "您输入的数字不是1"

fi        

双分支运用实例

利用双分支检测一下crond是否开启

#!/bin/bash

soft
=crond
status_crond
=`ps aux | grep "crond" | grep -v "grep" | wc -l`
if [ $status_crond -eq 1 ];then
echo
"$soft 正在运行!" else
echo
"$soft 未运行" fi

利用双分支检查主机是否在线(黑洞文件,/dev/dull,此文件相当于windows的回收站,不会占我们的磁盘,为什么要导入,这样就会省略过程,只显示echo的输出结果,给用户一个好的体验。)

#/bin/bash

ip
=192.168.1.9
ping
-c 1 -w $ip &> /dev/null
if [ $? -eq 0 ];then
  echo
"$ip在线"

else
   echo
"$ip不在线" fi

多分支

if 条件表达式;then

  命令(按tab键自动缩进一下)

elif 条件表达式;then

  命令(按tab键自动缩进一下)

else

  命令(按tab键自动缩进一下)

fi

read –p:提示你输入一个东西

#!/bin/bash
read -p "请输入一个数字: "num
if [ $num -le 5 ];then
        echo "您输入的$num小于等于5"
elif [ $num -gt 5 -a $num -le 10 ];then
         echo "您输入的$num大于5小于等于10"
elif [ $num -gt 10 -a $num -le 20 ];then
         echo "您输入的$num大于10小于等于20"
elif [ $num -gt 20 -a $num -le 30 ];then
         echo "您输入的$num大于20小于等于30"
elif [ $num -gt 30 -a $num -le 40 ];then    
         echo "您输入的$num大于30小于等于40"
else
         echo "您输入的数字大于40!"
fi

多分支运用实例

利用多分支编写一个简单的计算器

#!/bin/bash
read -p "请输入第一个数字: "num1
read -p "请输入运算符号: "num2
read -p "请输入第二个数字: "num3
if [ -n "$num1" -a -n "$num2" -a -n "$num3" ];then
        if [ "$num2" == "+" ];then
                echo "${num1}${num2}${num3}=$((num1+num3))"
        elif [ "$num2" == "-"];then
                echo "${num1}${num2}${num3}=$((num1-num3))"
        elif [ "$num2" == "*"];then
                echo "${num1}${num2}${num3}=$((num1*num3))"
        elif [ "$num2" == "/"];then
                echo "${num1}${num2}${num3}=$((num1/num3))"
        else
                echo "请输入+-*/"
        fi
else
        echo "请输入数字或运算符"
fi

利用多分支检查用户是否存在

#!/bin/bash

read
-p "请输入一个用户: "user

if id $user &> /dev/null;then
   echo
"$user存在"
else
   echo
"$user不存在!"
fi

for语句(循环语句,主要用于批量管理、检测)

书写格式:

第一种书写格式:

for 变量名 in 取值列表; do

  命令

done

第二种书写格式:

for 变量名 in 取值列表

do

  命令(切记首行缩进,tab键)

done

输出一个1至9的数列,每2秒输出一行

#!/bin/bash

for i in `seq 9`
do
  echo
"$i"
  sleep
2
done

运用实例

批量检测主机是否在线,在这里,ip是一个变量,i也是一个变量,两者的结合,就组成了IP。

#!/bin/bash
ip=192.168.1.
for i in {1..255}
do
        if p
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux里如何配置本地yum源和外网y.. 下一篇VirtualBox创建的Debian虚拟机与W..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目