Linux第五次课

分支语句

if语句
if [ condition ](输入的时候中括号里的条件要距离两边有一个空格的 距离,并且if离中括号也要有一个空格的距离)
then
command
elif[codition]then
command
else
command
fi

-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真
-a 并且
-o 或
if语句的例子

#!/bin/bash

read -p "please input a integer:" a

if [ $a -lt 10 ]
then
    echo -e "小于10\n"
elif [ $a -lt 50 -a $a -gt 10 ]
then
    echo -e "10<$a<50\n"
else
    echo -e "no\n"
fi

read -p “提示的内容” 变量1 变量2 …

read -p “请输入文件名:” path1 path2
echo “$path1 $path2”

例:判断输入的年份是否是润年(润年条件:1、能被4整除,但不能被100整除的年份。2、能被100整除,又能被400整除的年份)

#!/bin/bash

read -p "please input a year:" year

#if [ [ year % 4==0 -a year % 100 -ne 0 ] -o [ year % 400==0 ] ]
if (( year % 4==0 && year % 100 != 0 || yeaer%400==0 ))
#if [ year%4==0 -a year%100!=0 ] 
then
    echo "是润年"
else
    echo "不是润年"
fi
#这个是这一种方法,但是类似于if [ year%4==0 -a year%100!=0  ]  -o [  year%400==0 ] 这个方法是不行的,我也不知道为啥,其他的都行
下面的是第二种方法
#!/bin/sh  
    
echo "Please Input a year: "  
read year  
  
let "n1=$year % 4"  
let "n2=$year % 100"  
let "n3=$year % 400"  
if [ "$n1" -ne 0 ]  
then  
    leap=0  
elif [ "$n2" -ne 0 ]  
then  
    leap=1  
elif [ "$n3" -ne 0 ]  
then  
    leap=0  
else  
    leap=1  
fi  

if1.sh

循环

for1.sh

shell中特有的
until [conditon]
do
command
done

until1.sh

for n in seq 1 5
do
echo $n
done

选择

case

#!/bin/bash

case $1 in
‘start’ | -s )
echo “start … done”
;;
‘stop’ | -t )
echo “stop…done”
;;
‘restart’ | -rt )
echo “restart … done”
;;
‘status’ | -st )
echo “status … done”
;;
* )
echo “default”
;;
esac

select

select value in A B C
do
case “$value” in
A)
echo “You Selected A”;;
B)
echo “You Selected B”;;
C)
echo “You Selected C”;;
*)
echo “You Selected NULL”;;
esac
break
done


注意下面的特殊用法:

#!/bin/bash
declare -a serial
serial=(1 2 3 4)
PS3="Enter a number: "

select var in “a” “b” “c” “d”
do
if ! echo ${serial[@]} | grep -q $REPLY; then
echo “please enter [1-4].”
continue
fi
echo “your anwser is: $var”
break
done

案例

1、编写一个bash脚本,给另一个文本文件加行号,并输出
输入重定向
输出重定向
mv

linenum1.sh

2、倒序输出文件(递归)
输入重定向
revrread1.sh

3:程序监控,当程序未运行的时候则运行程序
checkrun1.sh
lession1.sh

if [ $# -lt 1 ]
判断是否输入命令行参数

1:首先检查进程是否存在,命令如下
ps -ef |grep “lession2.sh”|grep -v “grep”

通过下面的命令来观察程序

ctrl+z (进程挂起)
fg 恢复

jobs用来查看目前的后台工作状态,显示结果里面最前面的数字号就是对应进程的jobnumber
jobs -l 查看后台工作状态

结束后台工作
kill %jobnumber

例如
kill %1

4:ip地址判断
准备一个ip地址文件,每行一个ip,读入数据,如果是IP地址
就输出显示

ip.txt
192.168.2.110
falkdjfajlskd
192.168.0.110

猜你喜欢

转载自blog.csdn.net/weixin_44545549/article/details/88916603
今日推荐