2012-07-24 77 views
0

所以我一直在嘗試將我的批處理文件轉換爲bash。我正在運行一個linux(ubuntu)服務器,我想從那裏運行我的遊戲服務器,而不是我的工作/播放機器。這裏是bash的需要幫助將批處理轉換爲bash

@echo off 
title BSH 525 
cd ../build 
"C:\Program Files\Java\jdk1.7.0_03\bin\java.exe" -Xmx700m -server -cp .;../deps/*; net/com/codeusa/Server 43595 
pause 

,這裏是我在bash的嘗試

!/bin/bash 
cd ../build 
java -server -cp .;../deps/*; ../net/com/codeusa/Server 43595 

我不斷收到錯誤,如文件未找到,或Java抱怨語法

回答

0

在Linux中的目錄分離器是:而不是;

java -server -cp .:../deps/*: ../net/com/codeusa/Server 43595 
1

夫婦的事情:

  • 第一行應爲:

    #!/bin/bash 
    

    與一家領先的#。這是一個特殊的語法,它告訴內核哪個shell應該用來運行你的腳本。

  • 在Unix中,路徑在Java類路徑中以:分隔,而不是;。因此,嘗試:

    java -server -cp .:../deps/* ../net/com/codeusa/Server 43595 
    

    ;實際上是一個命令分隔,使外殼被處理您的一行三個不同的命令。

0

你有幾個問題:

!/bin/bash 
cd ../build 
java -server -cp .;../deps/*; ../net/com/codeusa/Server 43595 

hashbang行不正確;它應該是:

#!/bin/bash 

你已經有了一個cd ../build - 但什麼是你執行這個腳本的當前工作目錄過嗎?你必須拿到正確的 - 或者使用絕對目錄,而不是,如:

cd ~/gameserver/build 

而且,對於目錄在類Unix系統的列出的路徑分隔符是:而不是;。所以,你的Java命令應改爲如下所示:

java -server -cp .:../deps/*: ../net/com/codeusa/Server 43595 

(雖然我很驚訝在類搜索路徑...結束空白目錄)

+0

非常感謝你們。如果不是爲了你的全部幫助,我會把頭髮拉出我的頭。我開始喜歡unix kernal。它與Windows非常不同(< - 修辭語句),但我喜歡計算能力和安全性。 – user1547470 2012-07-24 04:52:28