|
Linux程式设计-11.Shell Script(bash)--(9)流程控制if |
|
![]() |
|
|
|
if list then list [ elif list then list ] ... [ else list ] fi 几种可能的写法
--------------------------------------------------------------------------------
第一种 if list then do something here fi 当list表述返回值为True(0)时,将会执行"do something here"。
例一 : 当我们要执行一个命令或程式之前,有时候需要检查该命令是否存在,然後才执行。 if [ -x /sbin/quotaon ] ; then echo "Turning on Quota for root filesystem" /sbin/quotaon / fi
例二 : 当我们将某个档案做为设定档时,可先检查是否存在,然後将该档案设定值载入。 # Filename : /etc/ppp/settings PHONE=1-800-COLLECT
#!/bin/sh # Filename : phonebill if [ -f /etc/ppp/settings ] ; then source /etc/ppp/settings echo $PHONE fi 执行 [foxman@foxman ppp]# ./phonebill 1-800-COLLECT
--------------------------------------------------------------------------------
第二种 if list then do something here else do something else here fi 例三 : Hostname #!/bin/sh if [ -f /etc/HOSTNAME ] ; then HOSTNAME=`cat /etc/HOSTNAME` else HOSTNAME=localhost fi
--------------------------------------------------------------------------------
第三种 if list then do something here elif list then do another thing here fi 例四 : 如果某个设定档允许有好几个位置的话,例如crontab,可利用if then elif fi来找寻。 #!/bin/sh
if [ -f /etc/crontab ] ; then CRONTAB="/etc/crontab" elif [ -f /var/spool/cron/crontabs/root ] ; then CRONTAB="/var/spool/cron/crontabs/root" elif [ -f /var/cron/tabs/root ] ; then CRONTAB="/var/cron/tabs/root" fi export CRONTAB
--------------------------------------------------------------------------------
第四种 if list then do something here elif list then do another thing here else do something else here fi 例五 : 我们可利用uname来判断目前系统,并分别做各系统状况不同的事。 #!/bin/sh
SYSTEM=`uname -s`
if [ $SYSTEM = "Linux" ] ; then echo "Linux" elif [ $SYSTEM = "FreeBSD" ] ; then echo "FreeBSD" elif [ $SYSTEM = "Solaris" ] ; then echo "Solaris" else echo "What?" fi
|
上一篇: Linux程式设计-11.Shell Script(bash)--(8)返回状态Exit 下一篇: Linux程式设计-11.Shell Script(bash)--(10)控制圈while/until
![](/images/xg.gif) |
相关文档 |
|
![](/images/xg.gif) |
发表评论 |
|
|
|
|