Linux程式设计-11.ShellScript(bash)--(9)流程控制if
时间:2008-05-10 来源:sdccf
iTbulo.COM |
几种可能的写法 -------------------------------------------------------------------------------- 第一种 iflistthen dosomethinghere fi 当list表述返回值为True(0)时,将会执行"dosomethinghere"。 例一:当我们要执行一个命令或程式之前,有时候需要检查该命令是否存在,然後才执行。 if[-x/sbin/quotaon];then echo"TurningonQuotaforrootfilesystem" /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@foxmanppp]#./phonebill 1-800-COLLECT -------------------------------------------------------------------------------- 第二种 iflistthen dosomethinghere else dosomethingelsehere fi 例三:Hostname #!/bin/sh if[-f/etc/HOSTNAME];then HOSTNAME=`cat/etc/HOSTNAME` else HOSTNAME=localhost fi -------------------------------------------------------------------------------- 第三种 iflistthen dosomethinghere eliflistthen doanotherthinghere fi 例四:如果某个设定档允许有好几个位置的话,例如crontab,可利用iftheneliffi来找寻。 #!/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 exportCRONTAB -------------------------------------------------------------------------------- 第四种 iflistthen dosomethinghere eliflistthen doanotherthinghere else dosomethingelsehere 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 |
相关阅读 更多 +