我正在尝试构建一个脚本,要求用户输入文件大小和路径,如果文件大小较大,则该文件应删除的限制,问题是即使文件较小,然后输入的值,无论如何,脚本会删除该文件,我认为我的Else语句中有错误
并且我已经尝试过[https://www.shellcheck.net/]并给我这个错误,但我不知道如何解决if [ "$SIZE" -gt "$limit" ];
^-- SC2154: limit is referenced but not assigned.
#!/bin/bash
limit="$1"
shift 1
for file in "$@"; do
SIZE="$(stat --format="%s" "$file")"
if [ "$SIZE" -gt "$limit" ];
then
echo "$file is $SIZE bytes. Deleting..; -rm $file"
else
echo "file is smaller then limit no delete"
fi
done
编辑:我删除了'read',现在出现了这个错误'[:-gt:一元运算符应为'即使文件大小较大,输入的值也将直接转到else语句
ShellCheck处于正确的轨道:limit
确实未分配,因为您的read
语句无效。因此,您的脚本始终认为limit=0
,因此应删除所有文件。