基本shell 编程

 if else以及大于、小于、等于逻辑表达式

if ....; then 
.... 
elif ....; then 
.... 
else 
.... 
fi
[ -f "somefile" ] :判断是否是一个文件 
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限 
[ -n "$var" ] :判断$var变量是否有值 
[ "$a" = "$b" ] :判断$a和$b是否相等
-r file     用户可读为真 
-w file     用户可写为真 
-x file     用户可执行为真 
-f file     文件为正规文件为真 
-d file     文件为目录为真 
-c file     文件为字符特殊文件为真 
-b file     文件为块特殊文件为真 
-s file     文件大小非0时为真 
-t file     当文件描述符(默认为1)指定的设备为终端时为真 
######################################################### 
整数比较
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
 
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))

 

字符串比较
 
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
 
注意: [[]]和[]中的行为在某些情况下是不同的:
 
[[ $a == z* ]]           # 如果$a 以"z"开头(模式匹配)那么将为true
[[ $a == "z*" ]]         # 如果$a 等于z*  (字符匹配),那么结果为true
 
[ $a == z* ]             # File globbing 和word splitting 将会发生
[ "$a" == "z*" ]        # 如果$a 等于z* (字符匹配),那么结果为true

 



for i in {1..10}
do
   echo $i
done

#详细列出(字符且项数不多)
for File in 1 2 3 4 5 
do 
    echo $File 
done

#对存在的文件进行循环
for shname in `ls *.sh`
do 
          name=`echo "$shname" | awk -F. '{print $1}'`           
          echo $name
done

#查找循环(ls数据量太大的时候也可以用这种方法)
for shname in `find . -type f -name "*.sh"`
do 
          name=`echo "$shname" | awk -F/ '{print $2}'`          
          echo $name
done

#((语法循环--有点像C语法,但记得双括号
for((i=1;i<100;i++))
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

#seq形式 起始从1开始
for i in `seq 100`
do
    if((i%3==0))
    then
        echo $i
        continue
    fi
done

#while循环注意为方括号[],且注意空格
min=1
max=100
while [ $min -le $max ]
do
    echo $min
    min=`expr $min + 1`
done  

#双括号形式,内部结构有点像C的语法,注意赋值:i=$(($i+1))
i=1
while(($i<100))
do
    if(($i%4==0))
    then
        echo $i
    fi
    i=$(($i+1))
done




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值