侧边栏壁纸
博主头像
口鸟人 博主等级

言念君子 . 温其如玉

  • 累计撰写 39 篇文章
  • 累计创建 16 个标签
  • 累计收到 14 条评论

目 录CONTENT

文章目录

Linux: shell基础学习(2)

koniaoer
2024-05-05 / 0 评论 / 0 点赞 / 89 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-05-06,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

回顾

执行脚本的方式
source my_first.sh		#在当前shell环境中运行,退出脚本后变量也可继续使用
. my_first.sh			#在当前shell环境中运行,退出脚本后变量也可继续使用
bash my_first.sh		#开启一个子shell运行,退出脚本后子shell消失,变量也就消失
./my_first.sh			#开启一个子shell运行,退出脚本后子shell消失,变量也就消失
echo 与转义符的概念

“ ” 在$等特殊符号前加 \ 原样输出

‘ ’ 不支持特殊的符号,所见即所得

变量在引用时前面必须加 $ 符

用于数值计算的命令

(( )) 仅支持一些基本的整数运算

取数值前要加 $

实例:
#!/bin/bash		#调用bash

printf_one(){
printf "please enter an integer\n"	#错误提醒
exit 1
}

read -p "please input a number"	num		#read -p接受用户输入的数字存入num中
if [ -n "'echo $num|sed's/[0-9]//g''" ]	#判断用户输入的是否为纯数字
	then
		printf_one
fi
read -p "please input an operatar:"	opt	#接受用户输入的运算符到opt中
if [ "$opt" != "+" ] && [ "$opt" != "-" ] && [ "$opt" != "*" ] && [ "$opt" != "/" ]	#判断是否为正确的运算符
	then
		echo "please input +-*/" exit 1
fi
read -p "please input a number"	num2		#read -p接受用户输入的数字存入num2中
if [ -n "'echo $num2|sed's/[0-9]//g''" ]	#判断用户输入的是否为纯数字
	then
		printf_one
fi

echo "${num}${opt}${num2}=$((${num}${opt}${num2}))" #开始计算

输出结果

let 运算符

let类似于(( )),但是(( ))效率更高

实例:
num=1
let num=num+2
echo num

expr 命令

基于空格传入参数,支持特殊符号

expr 3 + 2							#3+2=5
expr 3 \* 2							#3*2=6
expr length 12234 					#length 判断后面字符串长度
expr koniaoer.top ":" ".*\.top"		#expr模式匹配,输出符合.后面的最后坐标
实例

脚本示例

开发检查nginx服务是否运行

1.先定义变量,用于储存变化的值,便于后期维护

#!/bin/bash
Checkurl(){
	timeout=5
	fails=0
	success=0

while true
	do
		wget --timeout=${timeout} --tries=1 https://www.koniaoer.top/ -q -0 /dev/null
		if [ $? -ne 0 ]
			then 
				let fails++
		else
			let success++
		fi
		
		if [ $success -ge 1 ]
			then
				echo "运行中"
			exit 0
		fi
		
		if [ ${fails} -ge 2 ]
			then
				echo "状态异常"
			exit
		fi
	done

Chekurl		#调用函数
}

0

评论区