简单的脚本来删除linux bash中的文件

时间:2019-04-11 19:17:32

标签: linux bash path

我像下面这样在linux bash中编写了一个简单的脚本:

#!/bin/bash

PATH=/tmp_with_zip_files
FILETYPE=zip
i=1

for filename in $PATH/*.$FILETYPE;
do
        echo "rm $filename";

        if [ -f $filename ];
                then rm $filename;
        fi

        i=$((i+1))
done

echo "$i files removed"

但是,当我运行脚本时出现错误,因为脚本无法正常工作。这意味着从控制台我收到一条消息:

zip_delete.sh: line 11: rm: command not found

为什么Linux bash脚本无法识别linux命令rm?

2 个答案:

答案 0 :(得分:3)

大声笑,我认为这是因为您正在覆盖默认的$PATH变量(该变量告诉bash在哪里寻找可执行文件)。在执行期间,它在rm中找不到PATH程序,因为它仅指向/tmp_with_zip_files

为您的目的使用其他变量名,例如chicken_nuggets

警告不要执行以下PATH=$PATH:/tmp_with_zip_files,您可以从PATH删除一堆东西,这真是太糟糕了

答案 1 :(得分:2)

PATH变量保存OS命令的路径(例如rm),请勿将其用作变量,而应使用其他名称,例如path_to_files