2012-06-29 19 views
2

我已閱讀其他線程enter link description here討論.bat L/unix轉換,但沒有一個令人滿意。我在編寫自己的腳本時也嘗試了很多黑客類型的方法。如何將Example.bat更改爲Example.pl?

我有下面的example.bat腳本,它代表了我想在UNIX上運行的那種腳本。

代碼:

echo "Example.bat" 

perl script1 param.in newParam.in 

perl script2 newParam.in stuff.D2D stuff.D2C 

program.exe stuff.D2C 

perl script3 stuff.DIS results.out 

我的問題是我不知道如何處理在Unix bash shell中的Perl和Program.exe文件。我曾嘗試將它們放入系統()中,但這並不奏效。有人可以幫幫我嗎? 謝謝!

+0

請包括您已經編寫的代碼和它返回的錯誤。 – Dancrumb

+1

爲什麼你不使用shell腳本?無論如何,.exe都是你的問題。 –

+0

以上所有,我知道,我知道。我很感激你問這一點。問題是,當我運行上述,它在Windows中工作。但是,當我在我的MacOSX上使用bash時,它會「運行」,但僅報告不正確的數據。所以它看起來不錯,報告沒有錯誤,只是搞砸了。因此,我相信我需要手動將它轉換爲可以在Unix上運行的perl腳本。謝謝。 :-) – GeekyOmega

回答

2

前提是你有一個可執行文件名爲program.exe某處你$PATH(你也可能— Unix的可執行文件不必在.exe結束,但沒有說他們不能),你粘貼代碼一個有效的shell腳本。如果你將它保存在一個文件名爲,說,example.bat,您可以通過鍵入

sh example.bat 

到shell提示符下運行它。

當然,Unix shell腳本通常給後綴.sh —或者根本沒有後綴—而不是.bat。另外,如果你想你的腳本是可執行的直接,通過鍵入只是

example.sh 

而非sh example.sh,你需要做三件事情:

  1. 啓動腳本以「認領」行:與#!和完整路徑要使用運行它(例如/bin/sh爲基本的Bourne shell)命令解釋程序開頭的行,像這樣:

    #!/bin/sh 
    
    echo "This is a shell script." 
    
    # ... more commands here ... 
    
  2. 使用chmod命令將腳本標記爲可執行文件,例如,

    chmod a+rx example.sh 
    
  3. 把你的腳本放在你的$PATH的某處。在Unix上,默認路徑通常不會包含當前目錄.,因此只能通過輸入名稱來執行當前目錄中的程序。然而,您可以通過指定顯式路徑來運行它們,例如,即

    ./example.sh # runs example.sh from the current directory 
    

    要找出您的$PATH是什麼,只需鍵入echo $PATH到外殼。