2014-01-15 39 views
0

爲了簡化我的問題,我手動運行在2個不同的UNIX機器上低於CMDS:語法錯誤:`換行符或;'意外

CURR_DIR=`pwd` 

. ${CURR_DIR}/cfg_Contact_Archival.cfg 

在1環境,這是越來越沒有任何錯誤執行。但在其他環境中,我得到以下錯誤: 語法錯誤:`換行符或;'意想不到的

請讓我知道可能是這種差異的原因是什麼?

謝謝

+0

這兩個盒子是否都運行相同的shell? 'echo $ SHELL' – Amadan

+0

是的Amadan,都運行在同一個shell上:echo $ SHELL>/bin/sh – ak0053792

+0

您可以啓用set -x或set -v來查看錯誤產生的位置執行線)。 – Amadan

回答

0

立即想到兩種可能性。首先是檢查並查看您的文件沒有Windows風格的CR/LF行尾。

其次是檢查cfg_Contact_Archival.cfg的內容,以確保它實際上是一個有效的bash文件(因爲您試圖使用.來源)。

使用bash(和其他一些shell),可以通過將set -x置於文件的頂部,讓它在執行之前爲您提供每條命令行。

+0

對於第二種可能性,我已經比較了2 env的文件(cfg)。他們是一樣的。請讓我知道如何檢查選項1.謝謝。 – ak0053792

+0

感謝@paxdiablo我剛剛嘗試從其他環境運行cfg,它工作正常。將檢查我已發佈的env中的cfg文件。 – ak0053792

+0

OP正在尋找一個文件,因此在執行之前執行'set -x'就足夠了 - 無需在其頂部使用'set -x'修補文件。 – Alfe