Linux程式设计-11.ShellScript(bash)--(9)流程控制if
2006-03-05 11:33:17 来源:WEB开发网核心提示:iflistthenlist[eliflistthenlist]...[elselist]fi几种可能的写法第一种iflistthendosomethingherefi当list表述返回值为True(0)时,将会执行"dosomethinghere",Linux程式设计-11.ShellScript
iflistthenlist[eliflistthenlist]...[elselist]fi
几种可能的写法
--------------------------------------------------------------------------------
第一种
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
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
- ››linux中使用head命令和tail命令查看文件中的指定行...
- ››linux swap 分区调控(swap分区 lvm管理)
更多精彩
赞助商链接