2013-02-12 138 views
3

我在啓動從shell腳本創建的可執行文件時遇到問題。我想通過使用不同的命令行選項多次運行程序來自動化測試,以驗證它是否正常工作。從Shell腳本運行可執行文件

當我輸入echo $SHELL時,顯示/bin/sh

以下是我的shell腳本:

#!/bin/sh 
clear 
echo "Running first test." 
./myProgram 
exit 0 

當我運行在同一個目錄中的腳本(sh myScript.sh),用myProgram,我看到下面的輸出:

Running first test. 
: not foundsh: line 4: 

當執行程序./myProgram,它按預期運行,沒有命令行選項。

我也曾嘗試: myProgram ./myProgram & myProgram & 基於答案有點類似問題,但他們都導致上述錯誤信息。

+0

將myScript.sh和myProgram放在同一目錄中。如果是這樣,請嘗試簡單地轉到該目錄並運行./myScript.sh(即沒有第一個sh)。另外,在[Unix和Linux](http://unix.stackexchange.com/)上發佈可能會幫助你。 – 2013-02-12 05:01:56

回答

4

你的換行符被盜用。使用dos2unix進行修復。

1

你爲什麼不嘗試使用完整路徑? 例如,如果myProgram在/ home/user1/bin中,則可以嘗試/ home/user1/bin/myProgram而不是./myProgram。這應該工作。

您也可以將路徑添加到路徑變量$ PATH,並從任何地方直接調用myProgram。

在沒有引號的終端上運行「export PATH = $ PATH:/ home/user1/bin」。請注意,這僅影響您當前的臨時會話。如果要永久添加路徑,請使用以下行更新主目錄中的.bashrc文件: