[英]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.