我有以下korn脚本:
#!/bin/ksh
TAPPDATADIR=/hp/qa02/App/IPHSLDI/Data
echo $TAPPDATADIR
if [[ls $TAPPDATADIR/zip_file_MD5_checksum*.txt | wc -l > 1]]
then
exit "asdf"
fi
当我尝试运行它时,我得到:
/hp/qa02/App/IPHSLDI/Data
./iftest.ksh: line 7: [[ls: not found
为什么我的if语句不起作用?
我正在尝试查看Data目录中是否有多个校验和文件。如果有,我想退出脚本。
答案 0 :(得分:6)
有几个问题:
作业中=
周围不应有任何空格。
[[
声明中]]
和if
周围需要空格。
要将命令的结果替换为测试表达式,您需要使用反引号或$(...)
。
exit
的参数应该是一个数字,我想你只想回应字符串。
>
执行字符串比较,您必须使用-gt
执行数字比较。
所以完整的脚本应该是:
#!/bin/ksh
TAPPDATADIR=/hp/qa02/App/IPHSLDI/Data
echo $TAPPDATADIR
if [[ $(ls $TAPPDATADIR/zip_file_MD5_checksum*.txt | wc -l) -gt 1 ]]
then
echo "asdf"
fi