linux shell编程五步拳(张迅雷闪击shell系列) 第二集 shell编程基本语法快速入门

本文深入探讨了Shell脚本中变量测试语句的使用,包括字符串比较、整数比较、文件属性检查及if语句的流程控制。通过实例展示了如何简化变量测试并实现复杂条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量测试语句:用于测试变量是否相等、是否为空、文件类型等

格式 test  测试条件

 

test  str1=str2

test  str1!=str2

test str1   是否为空

test -d  file  指定文件是否目录

test -f  file  指定文件是否常规文件

test -x file  指定文件是否可执行

test -r file  指定文件是否可读

test -w  file  指定文件是否可写

test -s file  指定文件大小是否非0

test -a file  指定文件是否存在

 

整数的测试:

test  int1  -eq  int2    测试整数是否相等

test  int1  -ge  int2    测试int1是否>=int2

test  int1  -gt  int2    测试int1是否>int2

test  int1  -le  int2    测试int1是否<=int2

test  int1  -lt  int2    测试int1是否<int2

test  int1  -ne  int2    测试整数是否不相等

 

 

 

if  test -d $1  then

fi

变量测试语句可用[   ] 进行简化

if[            "$web"=""        ]

then

else

fi

 

 

if语句的流程图

if

then

 

fi

______________________________________

 

if

         then

else

fi

______________________________________

 

if

           then

eif

        then

eif

        then

else

fi

______________________________________

 

多个条件的联合

-a  逻辑与

-o  逻辑或

循环———————————————————————

for  变量 in  名字表
do
   命令列表
done


for  DAY in    sunday  Monday  Tuesday 
do
  echo  "THE  day  is:$DAY"
done

awk  -F  域分符‘命令’  不指定就是空格为风格符号,制定冒号做分割符就直接后面加冒号。
1  检测系统中UID为0的用户
awk  -F:'$3==0{print $1}'/etc/passwd
2  检测系统中密码为空的用户
 awk -F:'length($2)==0 {print $1}'/etc/shadow

exit 1 错误退出
grep  ^root:x  /etc/passwd  精确查找


list  /etc/passwd   info

who
sh  killluser.sh  test

 

cat  killuser.sh


#!/bin/sh
#
username="$1"  这个地方是位置变量
/bin/ps  aux | /bin/grep  $username | /bin/awk '{print $2}' >/tmp/temp.pid  $2是pid
killid='cat  /tmp/temp.pid'
do
  /bin/kill  -9  $PID 2>  /dev/null
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值