使用路径变量获取文件时“未找到命令”

时间:2011-09-08 12:20:05

标签: bash variables

如果我运行此脚本:

#!/bin/bash

PROJECT_PATH="/Users/hudson/workspace/Foo"
XCODE_PROJECT_FOLDER="${PROJECT_PATH}/CODE/APP/FOO_IOS"

echo ${PROJECT_PATH}
echo ${XCODE_PROJECT_FOLDER}

显示:

  

/用户/哈德森/工作区/富

     

/用户/哈德森/工作区/富/ CODE / APP / FOO_IOS

如果我将变量放在另一个文件中,请将其包含在主脚本文件中,然后运行它:

test.sh

#!/bin/bash

. "/Users/hudson/workspace/Foo/ota.sh"

echo ${PROJECT_PATH}
echo ${XCODE_PROJECT_FOLDER}

/Users/hudson/workspace/Foo/ota.sh

#!/bin/bash

PROJECT_PATH="/Users/hudson/workspace/Foo"
XCODE_PROJECT_FOLDER="${PROJECT_PATH}/CODE/APP/FOO_IOS"

我有这个输出:

  

:找不到命令/Users/hudson/workspace/Foo/ota.sh:line 2:

     

/ Users / hudson / workspace / Foo

     

/ CODE / APP / FOO_IOSkspace /富

知道问题可能来自哪里?

  • 如果我将ota.sh放在与test.sh相同的文件夹中,则效果很好
  • 如果我不在#!/ bin / bash和包含之间留一个空行,我不会得到:command not foundpace / Foo / ota.sh:第2行消息

3 个答案:

答案 0 :(得分:2)

可能错误/混合的unix / windows行结尾,请尝试使用dos2unix进行修复。

答案 1 :(得分:0)

尝试在vim中打开文件,查看是否有任何特殊字符,例如退格。

答案 2 :(得分:0)

与上一个答案一样,可能是错误的/混合的unix / windows行结尾。如果你使用notepad ++,正如迈克所提到的,在notepadd ++中,你可以通过选择编辑菜单,然后选择 EOL转换来更改EOL字符。在阅读了迈克的评论之后,这就解决了操作提到的同样的问题,即我也有。