分析解决脚本执行时总是报出command not found
文章发布较早,内容可能过时,阅读注意甄别。
今天做一个简单的日志清理脚本,然后却总是会报出command not found
的错误,一时也是懵住了,困了一大会儿才找到原因,可能这就是经验不够丰富的原因吧。
这是什么原因,一般报错这个错误的,在 Linux 系统当中,都是说没有这个命令,但是我用的 ls,难道真的是被删根,连 ls 都没有了吗。 先来看看脚本都写了什么吧。
#!/bin/sh
PATH=/usr/local/tomcat/logs
for A in `ls .`
do
cd $PATH
find $A/ -mtime +1 -name "*.log*" -exec rm -rf {} \;
done
1
2
3
4
5
6
7
2
3
4
5
6
7
看上去挺正常的一个脚本,重复执行仍旧如此。
现在,有两个思路可以来进行一下排查:
- 1, 可能系统当中真的没有脚本当中出现的命令,或者脚本当中的命令书写不规范,需要仔细检查。
- 2, 那就是我今天犯的错误了,在定义变量的时候,使用了 PATH 这个变量名,这在 Linux 中就犯了大忌,因为这个临时定义的名称,会被当做环境变量而将系统中的环境变量给覆盖,在环境变量下的命令们就像一群一直从那个独木桥回家的小羊,突然一天独木桥被砍断,他们就会觉得找不到回家的路了一样。
此时,将 PATH 更改成 Path 或者其他,再回去执行刚才的脚本,发现就不会报这个错了。
上次更新: 2024/07/04, 22:40:37