浏览 17660 次
锁定老帖子 主题:Unix Shell 的 While 循环
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-29
unix shell就是unix系统的命令解释器,比如你敲个ls,它给你返回当前目录下的文件、目录列表,返回这个列表就是shell的工作。 unix shell有哪些种类? 感觉这话有点问题,应该是解释器有哪些种类?但是也可以说unix shell有哪些种类,因为解释器不一样,语法还是稍微有些差别。比较常见的解释器有:csh,ksh,bash。很多系统默认的就是bash,/usr/bin/sh 就是它。 我使用的是什么shell? 你只需要more一下 /etc/passwd,找到你的用户的哪一行,看一下就明白了。 shell怎么切换? 这个很简单,假设你现在想用ksh了,仅仅执行一下: /usr/bin/ksh 或者 /bin/ksh ,你的命令解释器就变成ksh了。那么在shell编程的时候怎么指定呢?你只需要在第一行加入#!/usr/bin/ksh 或者 #!/bin/ksh 就可以了,其它的雷同. 这里顺便说一下 /usr/bin 和 /bin的区别,/bin 会放置一些普通用户不让使用的命令,所以它的目录权限可能会更严一些, 如果没有权限使用这目录就可以用 /usr/bin 了。 现在言归正传: bash的while loop: 语法: while [ condition ] do command1 command1 commandN done 示例: #!/bin/bash c=1 while [ $c -le 5 ] do echo "Welcone $c times" (( c++ )) done ksh的while loop: 语法: while [[ condition ]] ; do command1 command1 commandN done 示例: #!/bin/ksh c=1 while [[ $c -le 5 ]]; do echo "Welcome $c times" (( c++ )) done csh的while loop: while ( condition ) commands end #!/bin/csh set yname="foo" while ( $yname != "" ) echo -n "Enter your name : " set yname = $< if ( $yname != "" ) then echo "Hi, $yname" endif end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |