繁体   English   中英

如果在bash脚本中不起作用

[英]If doesn't work at bash script

这不是完整的代码,前两行仅用于“调试”目的,我是bash脚本的新手,而且我不知道为什么ls $ACTUAL/${BACKUP_DIR}/${NOMBRE}_*.tgz | wc -l ls $ACTUAL/${BACKUP_DIR}/${NOMBRE}_*.tgz | wc -l返回2,脚本执行then子句...

COPIAS=$(ls $ACTUAL/${BACKUP_DIR}/${NOMBRE}_*.tgz | wc -l)
echo ${COPIAS}
if [ $(ls $ACTUAL/${BACKUP_DIR}/${NOMBRE}_*.tgz | wc -l)>5 ]
    then
        echo "more than 5"
    else
        echo "5 or less"
fi 

[是正常命令,因此>被视为重定向。 您可以改用[[ (这是一个关键字)。 另外,您也可以转义>\\>这样就不会将其视为重定向。

注意, >用于字符串比较。 要比较两个数字,可以使用-gt

 array=("$ACTUAL/${BACKUP_DIR}/${NOMBRE}_"*.tgz)

 if [[ ${#array[@]} -gt 5 ]]  # -gt: arithmetic operator greater-than
 then
   echo "more than 5"
 else
   echo "5 or less"
 fi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM