shell利用cat与if比较实现nginx启停

shell利用cat与if比较实现nginx启停_第1张图片

系统预定义变量

    echo $*        #所有传递的位置参数:
    echo $@        #所有传递的位置参数:
    echo $#        #共传递的参数数量
    echo $$        #当前程序运行的PID:
    echo $?        #返回上一个命令执行的返回结果为0时代表上一个命令成功其他为错误
  • 举例
vi test.sh
	#!/bin/bash

	echo $*
	echo $@
./test.sh 2 34 535 54 35 345
2 34 535 54 35 345		#返回的值所有传递的位置参数
2 34 535 54 35 345		#返回的值所有传递的位置参数
vi test.sh
	#!/bin/bash

	echo $#
./test.sh 2 34 535 54 35 345
6		#返回的值总共传递的参数数量
vi test.sh
	#!/bin/bash

	echo $$
./test.sh
6667		#返回的值脚本本身pid
ls -l
总用量 8
-rw-------. 1 root root 2829 6月   7 18:25 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 6月   7 18:28 Desktop
drwxr-xr-x. 2 root root    6 6月   7 18:28 Documents
drwxr-xr-x. 2 root root    6 6月   7 18:28 Downloads
drwxr-xr-x. 2 root root    6 6月   7 18:28 Music
-rw-------. 1 root root 2109 6月   7 18:25 original-ks.cfg
drwxr-xr-x. 2 root root    6 6月   7 18:28 Pictures
drwxr-xr-x. 2 root root    6 6月   7 18:28 Public
drwxr-xr-x. 2 root root    6 6月   7 18:28 Templates
drwxr-xr-x. 2 root root    6 6月   7 18:28 Videos
echo $?
0    #上条命令为真

变量赋值

#read -p 交互方式变量赋值
vi test.sh
	#!/bin/bash    #开头

	read -p "请输入第一个值:" num1    #第一条read命令
	read -p "请输入第二个值:" num2

	sum=$((num1 + num2))    #引用通过read赋值的num1跟num2
	echo "$num1 + $num2 = $sum"
./test.sh
请输入第一个值:4		#返回结果
请输入第二个值:8		#返回结果
4 + 8 = 12				#返回结果

if比较

-r 文件名    如果文件存在且可读则为真
-w 文件名    如果文件存在且可写则为真
-x 文件名    如果文件存在且可执行则为真
-s 文件名    如果文件存在且至少有一个字符则为真
-d 文件名    如果文件存在且为目录则为真
-f 文件名    如果文件存在且为普通文件则为真
-c 文件名    如果文件存在且为字符型特殊文件则为真
-b 文件名    如果文件存在且为块特殊文件则为真
=    等于则为真
!=    不相等则为真
-z 字符串    字符串的长度为零则为真
-n 字符串    字符串的长度不为零则为真
-eq    等于则为真
-ne    不等于则为真
-gt    大于则为真
-ge    大于等于则为真
-lt    小于则为真
-le    小于等于则为真

 举例

vi read3.sh
	#!/bin/bash
	read -p "请输入需要检测的ip地址:"IP    #交互方式指定ip
	
	ping -w1 -c1 ${IP} &> /dev/null		#-c指定包的数量,-w为等待时间秒为单位 &>:混合输出至 	 											        
#/dev/null:系统自带垃圾箱
	if [ $? -eq 0 ];then						#if [];then  条件,then满足时返回
												#$? -eq 0    $?返回的值等于0
		echo "${IP} 可以通信"			#满足$? -eq 0时返回
	else								#不满足上面条件时
		echo "${IP} 无法通信"	
	fi

CAT菜单

#!/bin/bash
cat << END
1) 启动nginx
2) 停止nginx
3) 查看nginx状态
END

当运行上面脚本时,将在界面上返回|1|2|3三个选项

简单利用从而实现启停nginx

#!/bin/bash

cat << END
1) 启动nginx
2) 停止nginx
3) 查看nginx状态
END

read -p "请输入您要选择的序号" sel
if [ ${sel} -eq 1 ];then    #当$sel为1时运行以下命令
    sudo systemctl start nginx
    echo "nginx已启动"
fi
if [ ${sel} -eq 2 ];then    #当$sel为2时运行以下命令
    sudo systemctl stop nginx
    echo "nginx已关闭"
fi
if [ ${sel} -eq 3 ];then    #当$sel为3时运行以下命令
    echo "nginx状态如下$(sudo systemctl status nginx|head -3|tail -1|awk '{print $2}')"
fi

创作不易  觉得不错留下三连

你可能感兴趣的:(Shell学习,linux)