2012-07-24 75 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