我有以下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
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我得到:
/hp/qa02/App/IPHSLDI/Data
./iftest.ksh: line 7: [[ls: not found
Run Code Online (Sandbox Code Playgroud)
为什么我的if语句不起作用?
我正在尝试查看Data目录中是否有多个校验和文件.如果有,我想退出脚本.
有几个问题:
作业中不应有任何空格=.
你需要在声明中[[和周围的空格.]]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
Run Code Online (Sandbox Code Playgroud)