Shell语言开发基础模板
#脚本测试:
window   回车是   \r\n
linux    回车是   \n
yum install  -y  dos2unix    (软件)
命令:dos2unix  脚本名        -------处理
sh  -x  与  set  -x(开始) set   +x(结束)
显示脚本执行过程
一.变量
1.局部变量:只在一个范围内使用(普通变量)
File=`ls -l /root`
echo ${File}
2.全局变量:在整个linux中适用(环境变量)
echo $PATH
/opt/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
#临时添加一个全局变量
export File=`ls -l /root`
检查
env  |grep  File 
#永久添加一个全局变量
echo  'export  File=`ls -l /root' >>/etc/profile && source /etc/profile
命令:(检查)env |grep NAME
File=`ls -l /root
3.特殊变量:位置变量及进程状态变量
$0  脚本的名字
$1  第一个参数
$2  第二个参数
$#  参数的总个数   全部在一起吐出来
$@  参数的总个数
$?  上一次命令是否执行正确 0(正确)    非0(错误) 
   
二.操作符
1.文件目录判断操作符
判断/root目录是否存在
(判断) [ -d /root ]
判断/root/oldboy.txt文件是否存在
(判断) [ -f  /root/oldboy.txt ]
2.比较大小
[ 1 -eq 1 ]  equal         ==  
[ 2 -ne 1 ]  not equal     !=
[ 2 -gt 1 ]  great than    >
[ 2 -ge 1 ]  great equal   >=
[ 2 -lt 10 ]  less than    <
[ 2 -le 10 ]  less equal   <=
3.字符串判断操作符
-z用法(字符串长度为0)真
[ -z "" ]
! [ -z  "haha" ]
-n用法(字符串长度非0)真
[ -n "haha" ] 
! [ -n "" ]
4.逻辑操作符
-a 与and,两端都为真则真
-o 与or,有一个真则真
!非not,相反则为真
[root@web03 ~]# [ 1 -le 2 -a 2 -gt 1 ] &&  echo "成立" || echo "不成立"
成立
[root@web03 ~]# [ 1 -le 2 -a 1 -gt 1 ] &&  echo "成立" || echo "不成立"
不成立
[root@web03 ~]# [ 1 -le 2 -o 1 -gt 1 ] &&  echo "成立" || echo "不成立"
成立
[root@web03 ~]# [ 1 -le 2 -o ! 1 -gt 1 ] &&  echo "成立" || echo "不成立"
成立
[root@web03 ~]# [ ! 1 -le 2 -o ! 1 -gt 1 ] &&  echo "成立" || echo "不成立"
成立
三.if语句
1.单分支语句
if  [条件] ;then
命令语句
fi
2.双分支语句
if  [条件]
then
  命令语句1
else
  命令语句2
fi
3.多分支语句
if  [条件]
then
命令语句
elif [条件]
then
命令语句 
elif  [条件]
then
命令语句
else
命令语句2
fi
四.case语句
case $1 in
start)
    启动命令
  
  
stop)
     停止命令
  
  
restart)
     停止命令
     sleep 1
	 启动命令
  
*)
    echo "USAGE: sh $0 start|stop|restart"
 
esac
五.while无限循环语句
while  条件
  do
    命令语句
  done
  
例子:(let 计算)
计算1到100的和
i=1
sum=0
while [$i -le 100] ; then
  do 
    let sum=sum+$i
    let i++
  done
    echo $sum  
	
  
  
  
  
  
  
六.for循环语句
for i in 用于循环的条件
  do
     条件
  done	 
例:continue(条件满足时退出本次循环,接着执行下一个循环)
#!/bin/bash
for i in {1..5}
  do
    if [ $i -eq 3 ] ;then
          continue
    fi
    echo $i
  done
    echo "ok"
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号