为什么我的bash shell脚本不能一致执行?
问题描述:
我在我的linux系统上遇到了一些奇怪的行为。我创建了一些bash脚本文件,并将其模式更改为可执行文件。但是,有些可以被调用和执行,而有些则不可以(没有找到错误的msg命令)。因此,我使用了一个基于能够找到并执行的文件的cp文件,然后用一个文件中的内容替换了新创建的文件,这个文件无法作为一个丑陋的工作执行。它为我工作,但只是想知道是什么造成了这个问题。如果有人知道一个快速解决方案,因为这个问题正在反复出现,那将会很棒。为什么我的bash shell脚本不能一致执行?
例如,你可以看到系统能够运行blastem,但不bbrBlas
[[email protected] ~]$ /home/c052308/bbrBlas -d ./BBR -l pt -p prior.txt -r
/home/c052308/bbrBlas: Command not found.
[[email protected] ~]$ ./blastem
[[email protected] ~]$ ./bbrBlas
./bbrBlas: Command not found.
[[email protected] ~]$ 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
答
确保您的家当线(即第一行,用#!
开始)不包含\r
(0x0d
)如果您在DOS或Windows下编辑脚本,可能会发生这种情况。实际上,请确保您的脚本不包含任何奇怪的字符 - 使用hexdump -C
来查找它们。
它们位于不同的位置吗? – Buggabill 2010-08-16 21:01:45
他们坐在同一个目录中。 – Jim 2010-08-16 21:08:06
你能提供一个例子吗?举个简短的例子,告诉我们你的执行命令是什么。另外,勾画出你正在工作的目录结构。 – 2010-08-16 21:08:37