虚拟化容器,大数据,DBA,中间件,监控。

Shell for语句实战案例

20 12月
作者:admin|分类:脚本编程

for语句实现批量ping ip是否存活


#!/bin/bash
for i in `cat ip_list.txt`
do
       ping -c1 $i -w2
	   if [ $? -eq 0 ];then
         echo $i >>success_list.txt
        else
         echo $i >>failed_list.txt
       fi 
done

 

for语句批量添加用户


[root@www ~]# cat create_user.sh 
#/bin/bash
user_file="user.txt"

#如果用户文件存在就备份该文件
if [ -f $user_file  ];then
	echo -e "\033[32m${user_file} exit!backup file,rename ${user_file}-$(date +%F).bak \033[0m"
	\cp $user_file  ${user_file}-$(date +%F).bak
fi

echo  "User Password" >> $user_file
echo "---------------">> $user_file

for user_name in user{1..5}
do
  if ! id $user_name &>/dev/null;then    #if语句判断判断用户是否存在
	passwd=$(echo $RANDOM |md5sum |cut -c 1-8)   #产生用户密码然后赋值给变量passwd
	useradd $user_name
        echo $passwd | passwd --stdin $user_name &>/dev/null
        echo "$user_name   $passwd">>$user_file
        echo -e "\033[32mCreate user successful!\033[0m"
  else
        echo -e "\033[32m$user_name aleardy Exists! "
   fi        
done



[root@www ~]# ./create_user.sh 
user.txt exit!backup file,rename user.txt-2020-05-13.bak 
Create user successful!
Create user successful!
Create user successful!
Create user successful!
Create user successful!
[root@www ~]# cat user.txt
User Password
---------------
user1   b2f869c2
user2   02a7c788
user3   9fa9b144
user4   bf42fc47
user5   3e4073e0

 

for语句实现批量压缩


[root@www tmp]# ls
file1  file2  file3  file4  file5  file6

#!/bin/bash
cd /tmp
for FILE in `ls`   #这个地方也可以写成$(ls),即将ls命令结果当作for的循环池
do
        tar -zcf ${FILE}.tar.gz $FILE
done

[root@www tmp]# ls
file1         file2         file3         file4         file5         file6
file1.tar.gz  file2.tar.gz  file3.tar.gz  file4.tar.gz  file5.tar.gz  file6.tar.gz

 

浏览499 评论0
返回
目录
返回
首页
Shell 脚本实现ansible免密认证 expect批量导入ssh公钥 Shell case in简要说明与使用