颜色控制
一、添加颜色
1、终端中的颜色由ANSI转义码控制。ANSI转义码使用CSI(控制序列指示器)开头。
2、CSI的格式:CSInm (m,转义码)(n,显示控制),一个CSI中可包含多个n,使 
    用“;”号隔开。
    n颜色控制码:0 黑色,1 红色,2 绿色,3 ×××,4蓝色,5 洋红色,6 青色,7 白色。
3、前景色与背景色:CSIvnm(v应用值,3前景色,4背景色)
         CSI47m;30m
4、CSI的表示方法:^[[ (^[ ctrl+v esc)
    ^[[0m 未设置状态
    #echo "^[[CSI值"
示例:修改界面颜色:#echo “^[[CSI颜色值”
      修改输出文字背景:#echo "^[[41mthis is a test";echo "^[[0m"
                      #echo "^[[42;33mthis is a test^[[0m"
 
脚本示例
 
一、
#! /bin/bash
if ls /123 then echo "dcvdf" exit0
fi touch /123 exit1
 
(一)   、
#!/bin/bash
echo "NIC is " `grep DEVICE /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "MAC address is" `grep HWADDR /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "IP address is" `grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "NetMASK is " `grep NETMASK /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "Default Gateway is" `grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "DNS1 is" `grep DNS1 /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
echo "DNS2 is" `grep DNS2 /etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d = -f2`
 
(二)   、
#!/bin/bash
echo "Hello!"
read -p "IP地址的获取方式,static为静态获取,dhcp为动态获取:" A && echo $A | grep dhcp && echo "DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp HWADDR=00:21:85:60:1e:cf TYPE=ethernet" > /etc/sysconfig/network-scripts/ifcfg-eth0 && service network restart && exit 0
 
A=static;echo $A |grep static && read -p "请输入IP地址:" ip && read -p "请输入子网掩码:" mask
echo "你输入的IP地址为$ip。"
echo "你输入的子网掩码为$mask。"
read -p "你是否确认(y/n):" ans
echo $ans | grep n && echo "再见" && exit 7
 
 
(三)   、
#!/bin/bash
read -p "请输入您要查询的用户名:" A
if   grep ^$A /etc/passwd
         then
                   echo "该用户存在"
         else
                   echo "该用户不存在"
fi
 
 
 
 
(四)   #!/bin/bash
read -p "请输入你要查询的文件" A
if ls $A
     then
         echo "该文件存在"
        exit 0
fi
exit 4
 
 
(五)   #!/bin/bash
read -p "请输入你要创建的文件名:" A
if ls $A &> /dev/null
         then
                   echo "该文件已存在,不能创建"
         else
                   touch $A
                   echo "文件已创建"
fi
exit 0
 
(六)   #!/bin/bash
read -p "请输入用户名:" A
if grep ^$A /etc/passwd &> /dev/null
         then
                   if ls /home/$A &>/dev/null
                            then
                                     echo "该用户可登录"
                            else
                                     echo "该用户不能登录"
                   fi
         else
                   echo "用户不存在"
fi
 
 
(七)   #!/bin/bash
echo "这是一个ISO镜像生成工具"
eject
read -t 30
eject -t
if mount /dev/cdrom /media
         then
                   echo "开始制作镜像文件,请稍后"
                   umount /dev/cdrom
         else
                   echo "你没放入任何光盘,是否退出该程序(y/n):"
                   read B
                   if test $B = n
                            then
                                     eject
                                     read -t 30
                                     eject -t
                            else 
                                     exit 4
                   fi
fi
if cp /dev/cdrom /tmp/123.iso
         then
                   echo "镜像最作完成,存放于/tmp/123.iso"
                   echo "请收起光盘"
                   eject
         else
                   echo "破光盘,没法作"
                   exit 5
fi
exit 0
 
 
 
(八)   #!/bin/bash
read -p "请输入成绩:" A
if [ $A -lt 60 ] && [ $A -ge 0 ]
    then
         echo "不及格"
    elif [ $A -ge 60 ] && [ $A -lt 80 ]
         then
             echo "合格"
         elif [ $A -ge 80 ] && [ $A -lt 90 ]
             then
                   echo "良好"
         elif [ $A -ge 90 ] && [ $A -le 100 ]
             then
                   echo "优秀"
         elif [ $A -lt 0 ] || [ $A -gt 100 ]
             then
                   echo "胡扯"
fi
(九)   #!/bin/bash
A=`wc -l /etc/passwd | cut -d ' ' -f1`
if (( $A>=50 ))
         then
                   echo "大用户系统"
         else
                   echo "小用户系统"
fi
 
 
(十)   #!/bin/bash
A=`ifconfig eth0 | head -n 2 | tail -n 1 |cut -d : -f2 |cut -d ' ' -f1 | cut -d . -f1`
if (( $A<=127 && $A >=0 ))
         then
                   echo "A类IP"
         elif (( $A>=128 && $A<=191 ))
                   then
                            echo "B类IP"
                   elif (( $A>=192 && $A<=223 ))
                            then
                                     echo "C类IP"
fi
 
 
(十一)          #!/bin/bash
A=`df |grep ^/ | cut -d ' ' -f 1 | head -n1`
B=`df |grep ^/ | cut -d ' ' -f 1 | tail -n1`
uu=(`df | grep /dev/$A`)
z=`echo ${uu[1]}`
y=`echo ${uu[3]}`
if [ $y -ge $z/2 ]
         then
                   echo "大空余量"
         elif [ $y -lt $z/2 && $y -gt $z/3 ]
                   then
                            echo "磁盘使用过半"
                   elif [ $y -le $z/3 ]
                            then
                                     echo "磁盘容量较低"
fi
echo "磁盘可用百分比为`echo $[ 100-`echo ${uu[4]} |cut -d % -f1`]`"
                  
 
 
(十二)          #!/bin/bash
A=`df |grep ^/ | cut -d ' ' -f 1 | head -n1`
B=`df |grep ^/ | cut -d ' ' -f 1 | tail -n1`
uu=(`df | grep /dev/$A`)
z=`echo ${uu[1]}`
y=`echo ${uu[3]}`
if [ $y -ge $z/2 ]
         then
                   echo "大空余量"
         elif [ $y -lt $z/2 && $y -gt $z/3 ]
                   then
                            echo "磁盘使用过半"
                   elif [ $y -le $z/3 ]
                            then
                                     echo "磁盘容量较低"
fi
echo "磁盘可用百分比为`echo $[ 100-`echo ${uu[4]} |cut -d % -f1`]`"
                  
 
 
 
(十三)          #!/bin/bash
A=`df |grep ^/ | cut -d ' ' -f 1 | head -n1`
B=`df |grep ^/ | cut -d ' ' -f 1 | tail -n1`
uu=(`df | grep /dev/$A`)
z=`echo ${uu[1]}`
y=`echo ${uu[3]}`
if [ $y -ge $z/2 ]
         then
                   echo "大空余量"
         elif [ $y -lt $z/2 && $y -gt $z/3 ]
                   then
                            echo "磁盘使用过半"
                   elif [ $y -le $z/3 ]
                            then
                                     echo "磁盘容量较低"
fi
echo "磁盘可用百分比为`echo $[ 100-`echo ${uu[4]} |cut -d % -f1`]`"
                  
 
 
 
 
 
(十四)          #!/bin/bash
read -p "where are you from?:" A
case $A in
         hebei | henan )
                   echo "502";;
         shandong | shanxi )
                   echo "503";;
         guangdong|guangxi )
                   echo "504";;
         *)
                   echo "506";;
esac
 
 
(十五)          #!/bin/bash
A=2009001
for test in "马超" "寇抒杨" "尤烨" "曹挺廷" "王治军"
do
         echo "$A $test"
         A=`echo $[$A+1]`
Done
 
 
(十六)          #!/bin/bash
for name in `cut -d : -f1 /etc/passwd`
do
         B=`grep ^$name /etc/passwd |head -n 1| cut -d : -f3`            
         echo "$B $name"
 
done
 
(十七)          #!/bin/bash
for file in /etc/rc.d/init.d/*
         do
                   echo $file
         done
 
 
 
 
 
 
 
 
(十八)          #!/bin/bash
for file in /boot/*
do
         if [ -d $file ]
                   then
                            echo "$file is a directory"
                   elif [ -f $file ]
                            then
                                     echo "$file is a file"
         fi
done
 
 
(十九)          #!/bin/bash
read -p "请输入你要查询的IP地址:" A
if arping $A &>/dev/null
         then
                   echo "$A在线"
         else
                   echo "$A未在线"
fi
 
 
(二十)          #!/bin/bash
for (( i=0;i<=100;i++ ))
         do
                   echo $i
         done
 
 
(二十一)   #!/bin/bash
for (( L=1;L<=9;L++ ))
    do
         for (( R=1;$R<=9;R++ ))
                   do
                            echo "$L*$R=`echo $[ $L*$R ]`"
                   done
    done
        
(二十二)   #!/bin/bash
for name in "wanhzhjun" "youye" "guchenhui" "caoting"
do
       echo "$name"
    done
(二十三)   #!/bin/bash
for (( L=1;L<=9;L++ ))
    do
         for (( R=1;$R<=9;R++ ))
                   do
                            echo "$L*$R=`echo $[ $L*$R ]`"
                   done
    done
        
 
(二十四)   #!/bin/bash
for (( h=1;h<=9;h++ ))
do
         for (( sn=1;$h*2-1>=sn;sn++ ))
         do
                   for (( a=1;a<=$sn;a++ ))
                   do
                            b=`echo $[$a+1]`
                            if [ $b -le $sn ]
                                     then
                                               s="$s`echo $a*$b=$[$a*$b]`"
                                               b=`echo [$b+1]`
                            fi
                           
                   done
         done
         echo $s
         s=
done
 
 
(二十五)   #!/bin/bash
for (( h=1;h<=5;h++ ))
do
         for (( sn=9;sn>=$h;sn-- ))
         do
                   s="$s`echo 0`"
         done
         echo $s
         s=
done
 
 
 
(二十六)   #!/bin/bash
 
for (( a=1;a<=3;a++ ))
do
for (( h=1;h<=5;h++ ))
do
         for (( nu=4;$nu>=$h;nu-- ))
         do
             n="$n`echo '.'`"
         done
         for (( sn=1;$h*2-1>=sn;sn++ ))
         do
             s="$s`echo '0'`"
         done
         echo $n$s
         s=
         n=
done
done
for (( b=1;b<=4;b++ ))
do
         echo "...000"
done
 
 
(二十七)   #!/bin/bash
while var1=100 
      [ $var1 -ge 0 ]
do
         echo $var1
         var1=$[$var1-1]
done
 
 
(二十八)   #!/bin/bash
var1=10
while echo $var1
      [ $var1 -ge 0 ]
do
         echo "This is inside the loop"
         var1=$[$var1-1]
done
 
 
(二十九)   #!/bin/bash
n=1
while [ $n -le 1 ]
do
         for test in `cut -d: -f 1 /etc/passwd`
         do
                   echo "第$n个用户是:$test"
                   n=$[$n+1]
         done
done 
 
(三十)          #!/bin/bash
var1=100
until [ $var1 -eq 0 ]
do
         echo $var1
         var1=$[$var1-1]
done
 
(三十一)   #!/bin/bash
for (( a=1;a<=9;a++ ))
do
echo $a   
done
 
(三十二)   #!/bin/bash
read -p "还有多长时间(s,m,h,d):" sp
while [ $sp -ge 0 ]
do
         clear
         echo -e "\t\t\t\t\t\t"
         echo -e "\t\t\t\t\t\t"
         echo -e "\t\t\t\t\t\t"
         echo -e "\t\t\t\t**********"
         echo -e "\t\t\t\t*        *"
         echo -e "\t\t\t\t*        *"
         echo -e "\t\t\t\t    $sp   "
         echo -e "\t\t\t\t*        *"
        echo -e "\t\t\t\t*        *"
          echo -e "\t\t\t\t**********"
 
         sleep 1
         sp=$[$sp-1]
done
(三十三)   #!/bin/bash
s='welcome to Beijing'
b="Enter your name:"
 
 
sp1=`echo -n "$s" | wc -c`
 
#while [ $sp1 -ge 0 ]
#do
         for (( c=1;c<=$sp1;c++ ))
         do
                 sp2=`echo $s | cut -c $c`
                   echo -n "$sp2"
                   sleep 0.2
         done
         echo ''
#done
          
 
(三十四)   #!/bin/bash
echo "[33;47m"
clear
echo
echo
echo -e "\t\t系统管理菜单"
echo -e "\t1.查看磁盘空间"
echo -e "\t2.查看登录用户"
echo -e "\t3.查看ip地址"
echo -e "\t4.退出菜单"
echo -n -e "[35m\t\t\t输入你的操作代码:[33;47m"
read a
case $a in
1)
         fdisk -l;;
2)
         who;;
3)
         ifconfig eth0;;
4)
         exit 0;;
*)
         echo "请输入代码1~4,其它代码不支持";;
esac
 
(三十五)   #!/bin/bash
for (( a=1;a<=100;a++ ))
do
         echo "[42m"
         sleep 0.1
         echo "[43m"
         sleep 0.1
         echo "[44m"
         sleep 0.1
         echo "[45m"
         sleep 0.1
         echo "[46m"
         sleep 0.1
         echo "[47m"
done
echo "[0m"
 
 
 
 
 
(三十六)   #!/bin/bash
echo "Hello!"
read -p "IP地址的获取方式,static为静态获取,dhcp为动态获取:" A && echo $A | grep dhcp && echo "DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp HWADDR=00:21:85:60:1e:cf TYPE=ethernet" > /etc/sysconfig/network-scripts/ifcfg-eth0 && service network restart && exit 0
 
A=static;echo $A |grep static && read -p "请输入IP地址:" ip && read -p "请输入子网掩码:" mask
echo "你输入的IP地址为$ip。"
echo "你输入的子网掩码为$mask。"
read -p "你是否确认(y/n):" ans
echo $ans | grep n && echo "再见" && exit 7