Until语句的结构如下: until command do command command … … done
可以用until语句替换上面备份程序的while语句,完成同样的功能:
until [ $ANS != Y -a $ANS != y ]
for 循环 在介绍for循环之前,我们要学个非常有用的unix命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当Shell程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在$1后为$2,在$2后面为$3等。在 shift命令执行前变量$1的值在shift命令执行后就不可用了。
COPIES=1 VERBOSE=N while getopts vc:OPTION do case $OPTION in c)COPIES=$OPTARG;; v)VERBOSE=Y;; \?)echo "无效参数!" exit 1;; esac done if [ $OPTIND -gt $# ] then echo "No file name specified" exit 2 fi shift 'expr $OPTIND - 1' FILE=$1 COPY=0 while [ $COPIES -gt $COPY ] do COPY='expr $COPY + 1' cp $FILE $ {FILE} $ {COPY} if [ VERBOSE = Y } then echo ${FILE} $ {COPY} fi done
规范Shell:
我们知道环境变量PS1是提示符,看下面程序chdir: if [ ! -d "$!" ] then echo "$1 is not a directory" exit 1 fi cd $1 PS1="'pwd'>" export PS1
create name 产生名为name的层次 delete name 删除名为name的层次 block name 禁止名为name的层次的输出 unblock name 恢复名为name的层次的输出 resume name 激活名为name的层次 toggle 激活近来经常使用的层次 name 激活名为name的层次
layers [-l] name 对于表中的每个层次,显示其正在运行的进程的进程号,-l选项要求显示详细信息。