我在 Linux 系统上遇到了一些奇怪的行为。我创建了一些 bash 脚本文件,并将它们模式更改为可执行。但是,有些可以调用,而有些则不能。为了解决这个问题,我不得不复制可执行文件并将其内容替换为无法执行的文件中的内容。这对我来说是有效的,但我只想知道是什么导致了这个问题。肯定不是路径问题,因为可以调用同一目录中的其他文件。这也不是因为文件不可执行,因为我已经确定了这一点。如果有人知道快速修复方法,那就太好了,因为这个问题反复出现。
例如,你可以看到系统可以运行blastem,但不能运行bbrBlas
[c052308@sander ~]$ /home/c052308/bbrBlas -d ./BBR -l pt -p prior.txt -r
/home/c052308/bbrBlas: Command not found.
[c052308@sander ~]$ ./blastem
[c052308@sander ~]$ ./bbrBlas
./bbrBlas: Command not found.
[c052308@sander ~]$ ls -l bbrBlas blastem
-rwxr-xr-x 1 c052308 sashare 3108 Aug 18 17:03 bbrBlas
-rwxr-xr-x 1 c052308 sashare 798 Aug 12 12:06 blastem
答案1
#!
当脚本顶部的行错误时,您会收到此消息。#!
解释是在内核中完成的,而内核进程接口只能容纳错误代码。因此,您的交互式 shell 可以报告的只是错误代码(未找到命令)以及它尝试执行的文件(./bbrBlas
)。