6

分析解决脚本执行时总是报出command not found

 3 years ago
source link: http://www.eryajf.net/2266.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
分析解决脚本执行时总是报出command not found |坐而言不如起而行! 二丫讲梵
> 迎刃而解 > 分析解决脚本执行时总是报出command not found
本文预计阅读时间 2 分钟

今天做一个简单的日志清理脚本,然后却总是会报出command not found的错误,一时也是懵住了,困了一大会儿才找到原因,可能这就是经验不够丰富的原因吧。

这是什么原因,一般报错这个错误的,在Linux系统当中,都是说没有这个命令,但是我用的ls,难道真的是被删根,连ls都没有了吗。
先来看看脚本都写了什么吧。

  1. #!/bin/sh
  2. PATH=/usr/local/tomcat/logs
  3. for A in `ls .`
  4. do
  5. cd $PATH
  6. find $A/ -mtime +1 -name "*.log*" -exec rm -rf {} \;
  7. done

看上去挺正常的一个脚本,重复执行仍旧如此。

现在,有两个思路可以来进行一下排查:

  • 1, 可能系统当中真的没有脚本当中出现的命令,或者脚本当中的命令书写不规范,需要仔细检查。
  • 2, 那就是我今天犯的错误了,在定义变量的时候,使用了PATH这个变量名,这在Linux中就犯了大忌,因为这个临时定义的名称,会被当做环境变量而将系统中的环境变量给覆盖,在环境变量下的命令们就像一群一直从那个独木桥回家的小羊,突然一天独木桥被砍断,他们就会觉得找不到回家的路了一样。

此时,将PATH更改成Path或者其他,再回去执行刚才的脚本,发现就不会报这个错了。


weinxin

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明分析解决脚本执行时总是报出command not found

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK