我像下面这样在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?
答案 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
。