Chinaunix首页 | 论坛 | 博客
  • 博客访问: 581491
  • 博文数量: 213
  • 博客积分: 6789
  • 博客等级: 准将
  • 技术积分: 1947
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-01 17:11
文章分类

全部博文(213)

文章存档

2012年(9)

2011年(62)

2010年(99)

2009年(43)

分类:

2009-10-10 16:25:07

for命令:
   for循环用于根据项目清单确定的次数执行命令。
dir=/home/jody/ellie/backupscripts
for variable in word_list
do
   command(s)
done
例:
for file in memo[1-5]
do
   if[-f $file]
   then
       cp $file $dir/$file.bak
       echo " $file is backed up in $dir "
   fi
done
 
单词列表里包含当前陌路中所有memo开头,并以1-5之间的数字结尾的文件名。
在现在的名字后面追加.bak为扩展名。
 
例:
for file
do
  if[-f $file -a ! -x $file] or if [[ -f $file && ! -x $file ]]
  then
      chmod +x $file
      echo $file now has execute permission
  fi
done
 
如果for循环没有单词列表,他就自动循环位置参量。这跟for file in $*是一样的。
 
 
 
 
while命令:
   while命令判断它后面的命令,如果退出状态为0,执行循环体内的命令,直到done。
例:
go=start
while[-n "$go"]
do
   echo -n I love you.
   read word
   if[[ $word==[Qq] ]]
   then
        echo "I'll always love you!"
        go=
   fi
done
 
test命令-n表示检验一个非空字符串。如果go有一个初始化的值,检验就成功,如果go没有被双引号引用,变量值就为空,test命令就显示信息:
   go:test:argument expected
用户输入Q q显示 I'll always love you! 然后把go赋值为空。
 
 
until命令:
   until命令的用法与while命令的用法类似,只是在until后面的语句为假时候执行循环体。
例:
until who | grep linda
do
   sleep 5
done
 
当找到用户linda时候,grep就返回0。
 
例:
let hour=0
until(( hour > 24))
do
  case "$hour" in
  [0-9] | 1[0-1])
     echo "Good morning!"
     ;;
  12)
     echo "lunch time."
     ;;
  1[3-7]
     echo "Siesta time."
     ;;
  *)
     echo "Good night."
     ;;
  esac
  let hour+=1
done
 
 
select命令和菜单:
   主要的作用就是建立菜单。PS3用来提示用户输入,默认的PS3是#?。在PS3提示输入后,shell等待用户输入。输入的是该菜单的数字,若输入被保存在指定变量REPLY中,则变量REPLY中的数字与括号右边选项清单中的字符串有着对应关系。
   每一个选项前都有数字和右括号,PS3提示显示在菜单的底部。因为select命令是一个循环命令,因此一定要记得用break命令退出循环或exit命令退出脚本。
select var in wordlist
do
   command(s)
done
 
例:
ps3="select a program to execute: "
select program in 'ls -F' pwd date
do
   $program
done
 
例:
COLUMNS=60
LINE=1
PS3="Please enter the terminal type: "
select choice in wyse50 vt200 xterm sun
do
  case $REPLY in
  1)
    export TERM=$choice
    echo "TERM=$choice"
    break;;
  2 | 3)
    export TERM=$choice
    echo "TERM=$choice"
    break;;
 
  4)
    export TERM=$choice
    echo "TERM=$choice"
    break;;
  *)
    echo -e "$REPLY is not a valid choice. Try again\n" 1>&2
    REPLY= # Causes the menu to be redisplayed
    ;;
  esac
done
 
   变量COLUMNS表示在终端上显示的用select命令建立的菜单的列宽度。默认值为80
   变量LINES控制菜单在终端上的垂直显示。默认显示24行。当把这个变量的值改为1时,整个菜单将显示在第1行上。
   在菜单选项下面显示ps3提示符。
   REPLY变量保存用户选择。REPLY如果为空,就再次显示菜单。
   如果用户没有输入1到4的值,他将被提示再次输入,注意,菜单中将出现PS3提示符。
 
阅读(885) | 评论(0) | 转发(0) |
0

上一篇:apt-get

下一篇:looping

给主人留下些什么吧!~~