abs6.6 第11章 循环和分支

10.1 循环
for arg in [list]/`command`
do 
    command
    //set --$arg #解析变量 并且设置位置参数, 下面的代码可以使用 $1 $2访问arg.  -- 防止 arg为空或以-开头的报错
done

// list 可以包含通配符
# 如果list中包括*/? 会进行文件名扩展,file globbing
# 没有in [list] 则循环操作$@,从命令行传递给脚本的参数列表
类似C语言更个
for ((a=1;a <= LIMIT;a++)) # LIMIT前边没有$

10.2 嵌套循环
10.3 循环控制 break,continue
10.4 case and select
case $varibale in 
$condition1)
command
;;
$condition2)
comand
;;
*)
default_command
;;
esac


#!/bin/bash

SUCCESS=0
FAILURE=1

isalpha()
{
        if [ -z $1 ]
        then
                return $FAILURE
        fi

        case "$1" in
                [a-zA-Z]*) return $SUCEESS;;
        *) return $FAILURE;;
esac
}

isalpha2()
{
        [ $# -eq 1 ] || return $FAILURE

        case $1 in 
                *[!a-zA-Z]*|"") return $FAILURE;;
                *) return $SUCCESS;;
        esac
}

isdigit()
{
        [ $# -eq 1 ] || return $FAILURE

        case $1 in 
                *[!0-9]*|"" ) return $FAILURE;;
        *) return $SUCEESS;;
esac
}

check_var()
{
        if isalpha "$@"
        then
                echo "$* begins with an alpha character."
                if isalpha2 $@
                then
                        echo "$* contains only alpha character."
                fi
        elif isdigit $@
        then
                echo "$* contain only digits [0-9]"
        fi
}

check_var 23skidoo
check_var 23
check_var a2
check_var ab 23
check_var

#echo;
#echo "Hit a key, then hit return."
#read Keypress
#
#case "$Keypress" in 
#       [[:lower:]] ) echo "Lower letter";;
#[[:upper:]] ) echo "Uppercase letter";;
#       [0-9] ) echo "Digit";;
#*      ) echo "Punctuation ,whitespace , or other";;
#esac

#outer=1
#for a in 1 2 3 4 5
#do
#       echo "Pass $outer in outer loop."
#       echo "--------------------"
#       inner=1
#
#       for b in 1 2 3 4 5
#       do
#               echo "Pass $inner in inner loop"
#               let "inner+=1"
#       done
#
#       let "outer+=1"
#done

#t=0
#condition()
#{
#       ((t++))
#       if [[ $t -lt 5 ]]
#       then
#               return 0
#       else
#               return 1
#       fi
#}
#
#while condition
#do
#       echo "t=$t"
#done
#
#cat $0 | 
#while read line 
#do
#       echo $line
#done


#LIMIT=10
#a=1
#
#while [ "$a" -le $LIMIT ]
#do
#       echo -n "$a"
#       let "a+=1"
#done
#
#((a=1))
#while((a<=LIMIT))
#do 
#       echo -n $a
#       ((a+=1))
#done
#var1=unset
#previous=$var1
#while echo "previous-variable = $previous"
#       echo
#       previous=$var1
#       [ "$var1" != end ]
#do
#       "input variable #1 (end to exit)"
#       read var1
#       echo "variable #1 = $var1"
#done
#echo 


#echo
#while [ "$var1" != "end" ]
#do
#       echo "Input variable #1 (end to exit) "
#       read var1
#       echo "$variable #1 = $var1"
#       echo 
#done

#var0=0
#LIMIT=10
#
#while [[ "$var0" -lt "$LIMIT" ]]
#do
#       echo -n "$var0"
#
#       var0=`expr $var0 + 1`
#done

#LIMIT=10
#for((a=1;a<=LIMIT;a++))
#do
#       echo -n $a
#done

#for((a=1,b=1;a<=LIMIT;a++,b++))
#do
#       echo -n "$a-$b"
#done
#for a in 1 2 3 4 5 6 7 8 9 10
#do
#       echo -n $a
#done

#for a in `seq 1  2 10`
#do
#       echo -n $a
#done
#
#for a in {1..10}
#do
#       echo -n $a
#done

#directory=${1-`pwd`}
#echo "symbolic links in directory \"$directory\""
#for file in "$(find $directory -type l)" 
#do 
#       echo "$file"
#done | sort

#OLDIFS=$IFS
#IFS=:
#
#for file in $(find $directory -type l -printf "%p$IFS")
#do
#       echo "$file"
#done | sort

#generate_list()
#{
#       echo "one two three"
#}
#
#for word in $(generate_list)
#do
#       echo "$word"
#done

#PASSWORD_FILE=/etc/passwd
#n=1
#for name in $(awk 'BEGIN{FS=":"} {print $1}' < $PASSWORD_FILE)
#do
#       echo "USER #$n=$name"
#       let "n+=1"
#       #$((n+=1))
#done

#NUMBERS="9 7 3 8 37.53"
#
##for number in $NUMBERS
#for number in `echo $NUMBERS`
#do 
#       #echo -n "$number"
#       echo -n "$number"
#done
#FILES="/usr/sbin/accept
#/usr/sbin/pwck
#/usr/sbin/chroot
#/sbin/badblocks
#/sbin/ypbind"
#
#echo
#for file in $FILES
#do 
#       if [ ! -e "$file" ]
#       then
#               echo "$file dons not exitst.";
#               echo
#               continue
#       fi
#
#       ls -l $file | awk '{ print $8"  file size:" $5 }'
#       whatis `basename $file`
#       echo
#done

#IFS=$'\n';for line in `cat for_test.txt`;
#do
#       echo "$line"
#done
#echo
#for file in *
#do
#    ls -l "$file"
#    echo "file:$file"
#done
#
#echo;
#echo "-----------------------------"
#
#for a
#do
#    echo -n "$a"
#done
#
#echo 
#exit 0
#

#for planet in "Mercyry 36" "Venus 67" "Earth 93" "Mars 142" "Jupiter 483" "-x a"
#do
#       set $planet
#       #set -- $planet
#
#       echo "$1 $2,000,00 miles from the sun"
#done



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值