这不是完整的代码,2个第一行仅用于" debug"目的,我是关于bash脚本的新手,我不知道为什么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
答案 0 :(得分:2)
[
是一个普通命令,因此>
被视为重定向。您可以使用[[
(这是一个关键字)。或者,您可以将>
转移到\>
,这样就不会将其视为重定向。
请注意>
用于字符串比较。要比较两个数字,请使用-gt
。
答案 1 :(得分:1)
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