为什么我的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 
+0

它们位于不同的位置吗? – Buggabill 2010-08-16 21:01:45

+0

他们坐在同一个目录中。 – Jim 2010-08-16 21:08:06

+0

你能提供一个例子吗?举个简短​​的例子,告诉我们你的执行命令是什么。另外,勾画出你正在工作的目录结构。 – 2010-08-16 21:08:37

确保您的家当线(即第一行,用#!开始)不包含\r0x0d)如果您在DOS或Windows下编辑脚本,可能会发生这种情况。实际上,请确保您的脚本不包含任何奇怪的字符 - 使用hexdump -C来查找它们。