KSH IF命令条件脚本示例
时间:2020-01-09 10:41:09 来源:igfitidea点击:
如何将if命令与KSH一起使用,以在Unix之类的操作系统上做出决策?
KSH使用if条件命令提供程序流控制。
如果某些条件为真,则if语句运行一组命令。
例如,如果目录/backup不存在,请创建一个新目录,以便您的Shell脚本可以将备份备份到/backup目录。
if语句具有else部分,当不满足条件或将其设置为false状态时将执行该语句。
这也称为ksh脚本中的分支。
KSH if语句语法
语法如下:
if [[ condition ]]; then // Condition satisfied and run commands between if..fi fi
或者
if [ condition ] ; then // Condition satisfied and run this command else // Condition NOT satisfied and run this command fi
或者
if [[ condition1 ]];then // Condition1 satisfied and run this command elif [[ condition2 ]];then // Condition2 satisfied and run this command else // Both Condition1 and Condition2 are false, so run this command fi
例子
如果变量$x大于0,则输出一条消息。
否则(其他),打印出不同的消息。
按照shell脚本读取2个数字,然后找出两个中的较大者:
#!/bin/ksh x=51 y=10 echo "Value of x = $x and y = $y." echo "The greaters of the two" if [ $x -ge $y ]; then echo "x = $x " else echo "y = $y" fi
保存并关闭文件。
如下运行:
$ chmod +x script-name $ ./script-name
输出示例:
Value of x = 51 and y = 10. The greaters of the two x = 51
找出文件/etc/passwd是否存在:
#!/bin/ksh FILE=/etc/passwd DIR=/tmp/foo # ! means not # if file does exists if [ ! -f $FILE ]; then echo "Error $FILE does not exists!" else echo "$FILE found!" fi # if dir does not exists if [ ! -d $DIR ]; then echo "Error directory $DIR does not exists!" else echo "$DIR directory found!" fi
-d选项检查$DIR并确保它是目录。
-f选项使用$if条件命令检查$FILE并确保它是常规文件。
以下脚本使用if if then elif else else fi语法显示您的操作系统名称:
#!/bin/ksh # find-os.ksh : Guess your OS name. # get os type os="$(uname)" # make a decision if [[ $os = "Linux" ]]; then print "You are using Linux" elif [[ $os = "Darwin" ]]; then print "You are using OS X" else print "You are using Unix like os" fi
如下运行:
$ chmod +x find-os.ksh $ ./find-os.ksh
输出示例:
You are using OS X