首页 > 学院 > 操作系统 > 正文

shell-03

2024-06-28 16:04:31
字体:
来源:转载
供稿:网友
for循环的语法格式1:for 变量 in 值1 值2 值3...do命令done  1 #!/bin/bash  2   3 for i in  `ls /var/log`  4 do  5   if [ -s /var/log/$i  ]&& [ -f /var/log/$i ];then  6         tar -zcf  /data/log/$i.tar.gz  /var/log/$i &>/dev/null  7    fi  8 done~          

seq 9    表示1~9

seq  3  9   表示3~9

seq  3  3   100  表示3,6,9,12........100  (值为3的等差数列)

  

使用循环ping测试网络中所有主机#!/bin/bashnet=172.40.56for i in `seq 100 254`  #反引号doping -c 2 -i 0.2 -w 0.2 $net.$i &>/dev/nullif [ $? -eq 0 ];then    echo "该主机$net.$i,ping通"elseecho "该主机$net.$i,无法ping通"fidone批量创建账户的脚本1素材:user.txtzhansanjerrylisi2.test.sh#!/bin/bashfor i in  `cat user.txt` #反引号douseradd $idone+++++++++++++++++++++++++++for循环的格式2:for ((i=1;i<=5;i++))do命令done制作9*9乘法表1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9... ... ...#!/bin/bashfor ((i=1;i<=9;i++))do     for ((j=1;j<=$i;j++))     do        echo -n "$i*$j=$((i*j))"     doneechodone#!/bin/bashfor i in `seq 9`do     for j in `seq $i`     do        echo -n "$i*$j=$((i*j))"     doneechodone++++++++++++++++++++++++++++++++

字体色:30—–37     echo -e “/033[30m 黑色字 /033[0m”     echo -e “/033[31m 红色字 /033[0m”     echo -e “/033[32m 绿色字 /033[0m”     echo -e “/033[33m 黄色字 /033[0m”     echo -e “/033[34m 蓝色字 /033[0m”     echo -e “/033[35m 紫色字 /033[0m”     echo -e “/033[36m 天蓝字 /033[0m”     echo -e “/033[37m 白色字 /033[0m”     背景色:40—–47     echo -e “/033[40;37m 黑底白字 /033[0m”     echo -e “/033[41;37m 红底白字 /033[0m”     echo -e “/033[42;37m 绿底白字 /033[0m”     echo -e “/033[43;37m 黄底白字 /033[0m”     echo -e “/033[44;37m 蓝底白字 /033[0m”     echo -e “/033[45;37m 紫底白字 /033[0m”     echo -e “/033[46;37m 天蓝底白字 /033[0m”     echo -e “/033[47;30m 白底黑字 /033[0m” 

+++++++++++++++++++++++++++++++++

while循环格式

while 判断do    命令donei=15,while [ $i -le 20 ]do   echo hellodone+++++++++++++++++++++++++++++#!/bin/bashi=1while [ $i -le 5 ]do        echo $ilet i++done+++++++++++++++++++++++++++while : 死循环do    命令done+++++++++++++++++++++++++++++写个脚本,屏幕提示如下1.查看ip2.查看内存3.查看CPU信息4.查看硬盘5.退出请输入您的选项[1-5]: abc++++++++++++++++++++++++++++++#!/bin/bashwhile :doclearecho -e "/033[34m    菜单/033[0m"echo "1.查看IP2.查看CPU3.查看磁盘4.查看内存5.退出"read -p "请输入选项[1-5]:" xzif [ $xz -eq 1 ];thenifconfig eth0 |grep "inet add"echo -e "/033[34m按回车键继续.../033[0m"read elif [ $xz -eq 2 ];thencat /PRoc/cpuinfo |grep vendorcat /proc/cpuinfo |grep MHcat /proc/cpuinfo |grep cacheread -p "按回车键继续..."elif [ $xz -eq 3 ];thendf -hread -p "按回车键继续..."elif [ $xz -eq 4 ];thenfreeread -p "按回车键继续..."elif [ $xz -eq 5 ];thenexitelseread -p "您需要输入[1-5]:" xzfidone++++++++++++++++++++++++++++case语句case 变量  instop)   命令;;start)   命令;;*)   命令esac1.编写脚本,当用户输入参数redhat,则返回fefora,当用户输入参数fefora,返回redaht,其他返回Usage:脚本名 (redhat|fedora)#!/bin/bashcase $1 inredhat)    echo "XXX"echo "fedora";;fedora)echo "redhat";;*)echo "用法"esac++++++++++++++++++++++++++++编写Apache启动脚本:#yum -y install httpd#vim test.sh#!/bin/bashcase $1 instart)/usr/sbin/httpdecho "我已经启动了";;stop)kill `cat /var/run/httpd/httpd.pid`;;   #反引号restart)kill `cat /var/run/httpd/httpd.pid`    sleep 1/usr/sbin/httpd;;status)if [ -f /var/run/httpd/httpd.pid ];thenecho "httpd is 在运行..."elseecho "没有running"fi;;*)echo "用法是$0 {start|stop|restart|status}"esac++++++++++++++++++++++++++++++ 给Apache启动脚本添加开机启动功能:#vim test.sh#!/bin/bash#chkconfig: - 88 90case $1 instart)/usr/sbin/httpdecho "我已经启动了";;stop)kill `cat /var/run/httpd/httpd.pid`;;   #反引号restart)kill `cat /var/run/httpd/httpd.pid`    sleep 1/usr/sbin/httpd;;status)if [ -f /var/run/httpd/httpd.pid ];thenecho "httpd is 在运行..."elseecho "没有running"fi;;*)echo "用法是$0 {start|stop|restart|status}"esac++++++++++++++++++++++++++++++#vim myhttp给启动脚本添加一行注释#chkconfig: - 88 90

#chkconfig --add myhttpd#chkconfig --list myhttpd#chkconfig myhttpd on

#chkconfig myhttpd off

+++++++++++++++++++++++++判断用户输入的是数字、字母、标点符号#!/bin/bashread -p "输入字符:" keycase $key in[0-9])echo 数字;;[a-Z])echo "字母";;*)echo "其他"esac++++++++++++++++++++++++++++++++函数:避免代码重复先声明函数再调用函数声明函数的格式:函数名称(){命令}示例1:#vim test.shecho2(){  echo -e "/033[32mOK/033[0m"}echo2echo2示例2:#vim test.shecho2(){  echo -e "/033[$1m$2/033[0m"}echo2 32 OKecho2 34 Errorecho2 33 nihao

echo2 36 hello

示例3:

cecho(){

echo -e “/033[$1m $2 /033[0m”   

}

a=31

cecho  $a  OK           #显示红色字

+++++++++++++++++++++++++++++++++

Shell版本fork炸弹

递归死循环,可迅速消耗系统资源

#vim test.sh

.(){.|.&}.#chmod +x test.sh#./test.sh+++++++++++++++++++++++++++++++++
上一篇:scp命令

下一篇:系统分区

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表