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