简单 if 条件未按预期工作

Simple if condition that does not work as expected

我是 shell 脚本的新手。我正在备份一个数据库,我试图在服务器上只保留最近的 8 个副本。尽管我在该文件夹中只有 4 个文件,但以下 if 条件始终为假。

numberOfFiles=$(ls | wc -l)

if [$numberOfFiles -le 9]
then
echo $numberOfFiles
exit 0
fi

ls -t | sed -e '1,8d' | xargs -d '\n' rm

如果该文件夹中的文件数小于 9,我将如何修改 if 条件并退出脚本?

这一行

if [$numberOfFiles -le 9]

需要更多空间。

[ 是一个命令,而不仅仅是语法。它要求 ] 是给它的最后一个参数,所以你需要

 if [ $numberOfFiles -le 9 ]

相反。