Bash shell无法识别else语句

问题描述 投票:0回答:1

我正在尝试构建一个脚本,要求用户输入文件大小和路径,如果文件大小较大,则该文件应删除的限制,问题是即使文件较小,然后输入的值,无论如何,脚本会删除该文件,我认为我的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语句

linux centos centos7 redhat
1个回答
0
投票

ShellCheck处于正确的轨道:limit确实未分配,因为您的read语句无效。因此,您的脚本始终认为limit=0,因此应删除所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.