shell 脚本基础

132 阅读1分钟

基础脚本

判断分数范围,分出优秀、合格、不合格三档 if

#!/bin/bash                                                                                                                              
read -p "请输入你的分数(0-100):" GRADE                                                                                                   
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]                                                                                               
then                                                                                                                                     
  echo "$GRADE 分,优秀!"                                                                                                                
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]                                                                                              
then                                                                                                                                     
  echo "$GRADE 分,合格!"                                                                                                                 
else                                                                                                                                     
  echo "$GRADE 分,不合格!"                                                                                                               
fi   

根据IP 地址列表检查主机状态 if

#!/bin/bash                                                                                                                              
HLIST=$( cat /root/shell_demo/ipadds.txt)                                                                                                
for IP in $HLIST                                                                                                                         
do                                                                                                                                       
  ping -c 3 -i 0.2 -W 3 $IP &>/dev/null                                                                                                  
if [ $? -eq 0 ]                                                                                                                          
then                                                                                                                                     
  echo "ping $IP  ok"                                                                                                                    
else                                                                                                                                     
  echo "ping $IP  not ok"                                                                                                                
fi                                                                                                                                       
done  

判断用户是否创建 if

#!/bin/bash                                                                                                                              
UNAME="zhangsna"                                                                                                                         
if id -u $UNAME >/dev/null 2>&1                                                                                                          
then                                                                                                                                     
  echo "用户 $UNAME 已存在"                                                                                                              
else                                                                                                                                     
  useradd $UNAME                                                                                                                         
  echo "用户 $UNAME 创建成功"                                                                                                            
fi      
  • ipadds.txt
192.168.188.100                                                                                                                          
192.168.188.200                                                                                                                          
192.168.188.300                                                                                                                          
192.168.188.400                                                                                                                          
www.baidu.com  
  • users.txt
zhangsan                                                       
lisi                                                                     
wangwu                                                                                                                  
housi

根据姓名批量添加用户 for

#!/bin/bash                                                                                                                              
ULIST=$(cat /root/shell_demo/users.txt)                                                                                                  
for UNAME  in $ULIST                                                                                                                     
do                                                                                                                                       
if id -u $UNAME >/dev/null 2>&1                                                                                                          
then                                                                                                                                     
  echo "用户 $UNAME 已存在"                                                                                                              
else                                                                                                                                     
 useradd $UNAME                                                                                                                          
 echo "123456" | passwd $UNAME &>/dev/null                                                                                               
 echo "用户 $UNAME 创建成功"                                                                                                             
fi                                                                                                                                       
done                         

批量删除用户 for

#!/bin/bash                                                                                                                              
ULIST=$(cat /root/shell_demo/users.txt)                                                                                                  
for UNAME in $ULIST                                                                                                                      
do                                                                                                                                       
 if id -u $UNAME > /dev/null 2>&1                                                                                                        
 then                                                                                                                                    
  userdel -r $UNAME &>/dev/null                                                                                                          
  echo "用户 $UNAME 删除成功"                                                                                                            
 else                                                                                                                                    
  echo "用户 $UNAME 不存在"                                                                                                              
 fi                                                                                                                                      
done    

批量添加有规律的用户 while

#!/bin/bash                                                                                                                              
PREFIX="stu"                                                                                                                             
i=1                                                                                                                                      
while [ $i -le 10 ]                                                                                                                      
do                                                                                                                                       
 useradd ${PREFIX}$i                                                                                                                     
 echo "12345" | passwd ${PREFIX}$i &> /dev/null                                                                                          
 let i++                                                                                                                                 
 echo "用户 ${PREFIX}$i 成功"                                                                                                            
done         

批量删除上述添加的用户 while

#!/bin/bash                                                                                                                              
PREFIX="stu"                                                                                                                             
i=1                                                                                                                                      
while [ $i -le 10 ]                                                                                                                      
do                                                                                                                                       
if id -u ${PREFIX}$i >/dev/null                                                                                                          
then                                                                                                                                     
 userdel -r ${PREFIX}$i                                                                                                                  
 let i++                                                                                                                                 
 echo "用户${PREFIX}$i 删除成功"                                                                                                         
else                                                                                                                                     
 echo "用户${PREFIX}$i 不存在"                                                                                                           
fi                                                                                                                                       
done