2011-09-08 107 views
1

如果我運行此腳本:「命令未找到」 採購與路徑變量文件時

#!/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" 

我有這個輸出:

:command not found/Users/hudson/workspace/F OO/ota.sh:2號線:

/用戶/哈德森/工作區/美孚

/CODE/APP/FOO_IOSkspace /美孚

的問題出在哪裏可以來自任何想法?

  • 如果我在同一個文件夾中test.sh把ota.sh,這個效果很好
  • 如果我不讓#!/斌/ bash和夾雜物之間的空行,我不噸得到的:命令不foundpace /美孚/ ota.sh:2號線的消息

回答

2

可能錯了/混合UNIX/Windows的行尾,嘗試與dos2unix修復它。

+0

我編寫腳本文件如下:我使用Notepad ++在Windows上編寫腳本文件,並通過TightVNC將文件的內容複製/粘貼到XCode中的mac。我如何協調行結束? – Mike

+0

在ubuntu的resent版本中,dos2unix被'fromdos'和'todos'取代 –

+0

@Mike:首先用十六進制編輯器檢查這是真的。修復它使用'vi',或任何unix工具,例如:'perl -pi -e's/\ r \ n?/ \ n/g'' –

0

嘗試打開文件vim,查看是否有任何特殊字符,如退格鍵。

+0

我剛剛做了,並且看不到任何奇怪的角色 – Mike

0

與前面的答案一樣,可能是錯誤的/混合的unix/windows行結尾。如果您正在使用notepad ++,正如Mike提到的,在notepad ++中,您可以通過選擇編輯菜單來更改EOL字符,然後EOL轉換。在閱讀Mike的評論之後,這正是解決了與之相同的確切問題,也是我也有過的。