天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

Shell编程基础概念之SHELL编程语法(七.2)

上一篇 / 下一篇  2012-12-31 11:38:52 / 精华(1) / 置顶(1) / 个人分类:Linux操作系统

洗衣服的时候,把老婆的白裙子和牛仔裤一起洗,洗完之后悲剧了,白裙子变成蓝裙子了!
晾干之后,我把裙子叠好放在桌子上,等着给老婆做检讨!
谁知老婆回家,看到桌子上的蓝裙子,高兴坏了,扑到我身上咬了好几口,还说:“老公,你给我买的蓝裙子好漂亮,我爱死你了!!”



command > filename把把标准输出重定向到一个新文件中

command >> filename把把标准输出重定向到一个文件中(追加)

command 1 > fielname把把标准输出重定向到一个文件中

command > filename 2>&1把把标准输出和标准错误一起重定向到一个文件中

command 2 > filename把把标准错误重定向到一个文件中

command 2 >> filename把把标准输出重定向到一个文件中(追加)

command >> filename 2>&1把把标准输出和标准错误一起重定向到一个文件中(追加)

command < filename >filename2command命令以filename文件作为标准输入,以filename2文件作为标准输出

command < filenamec o m m a n d命令以f i l e n a m e文件作为标准输入

command << delimiter把从标准输入中读入,直至遇到d e l i m i t e r分界符

command <&m把把文件描述符m作为标准输入

command >&m把把标准输出重定向到文件描述符m

command <&-把关闭标准输入

 

比如常用dbaccess执行一个SQL串:

>dbaccess $TELLIN_DBNAME <<EOF >$errorfile 2>&1

delete from basetab_pps where msisdn=13000000000

EOF

 

5重新定向

输入定向:可以从文件或者标准输入设备得到输入

< 

输出定向:

>  #将命令的屏幕输出定向到文件

>> #将命令的屏幕输出定向到文件,采用Append方式

管道定向:

| #将一个命令的输出定向到另外一个命令的输出(某些命令不支持直接|定向)

如:将一条SQL输出到dbaccess执行

>echoupdate basetab_pps set multiserviceflag=00000000000where msisdn=13501300000|dbaccess $TELLIN_DBNAME

>psef |grepmanager|grepvgrep| wcl  #多次管道定向

 

得到命令返回值,输出到变量:

var=`command`

如:

>echo Time=`date "+%y-%m-%d %H:%M:%S"`     #输出Time=02-09-17 18:30:06

 

6基本流程语句

6.1顺序

6.2条件语句if-then-fi

if condition

then

  ...

fi

 

我们经常使用的书写方式:使用;符号,在一行中包含多条命令与语句

if condition then

  ...

fi

 

6.3条件语句if-then-else-fi

If condition

then

  ...

else

  ...

fi

       

if condition1

then

  ...

elif condition2

then

  ...

else

  ...

fi

     

6.4 while条件循环

while express

do

  ...

done

#从循环中退出使用breakcontinue命令

     

6.5 for循环

for var in arg1 arg2 ... argn

do

 ...

done

#从循环中退出使用breakcontinue命令

 

6.6 until循环

until express

do

...

 

done

#从循环中退出使用breakcontinue命令

     

6.7 case选择语句

case var in

var1)

   ...

   ;;

var2|var3)

   ...

   ;;

*)

   ;;

esac

            

如升级程序选择菜单就是利用case建立的:

while true

do

    #执行

    echo ""

    if [ "-${OprChc}" = "-1" ]; then

              Backup  #备份

    elif [ "-${OprChc}" = "-2" ]; then

              Upgrade #升级

    elif [ "-${OprChc}" = "-3" ]; then

              Rollback #回滚      

    elif [ "-${OprChc}" = "-0" ]; then

              Log "Goodbye!"

              Log ""

              break       

    else

              echo "Invalid input , please input again!"

    fi

           

     echo ""

     PrintUsage 

     read OprChc

done 

 

6.8 select选择语句(ksh支持)

select选择语句一般与case语句联合使用,用户生成用户交互菜单。语法为:

select var in value1 value2 value3valuen

do

  

done

select执行时会根据value项生成一个列表,并且每一项之前给一个从1开始递增的数字。用户选择某个数字,相当于选择value对应项,赋值给var变量。如:

1) value1

2) value2

3) value3

n) valuen

#?

 

一般do done之间使用case语句。语法扩展为:

select var in value1 value2 value3valuen

do

  case $var in

     value1)

        

        ;;

     value2)

        

        ;;

     value3)

        

        ;;

     

     valuen)

        

        ;;

     *)

  esac

done

 

                 零测试

TAG: 零测试 BASH bash Bash Linux shell Shell 操作系统

 

评分:0

我来说两句

Open Toolbar