![我怎样才能使这个.sh 文件正常运行?](https://linux22.com/image/1101106/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E4%BD%BF%E8%BF%99%E4%B8%AA.sh%20%E6%96%87%E4%BB%B6%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我正在尝试将 .bat 文件转换为 .sh
这是工作的 .bat 文件
@echo off
title runserver
"C:\Program Files\Java\jdk1.7.0_25\bin\java.exe" -Xmx815m -cp bin;lib/*; com.rs.Launcher true true false
pause
这是我目前的.sh 文件:
#!/bin/sh
java -Xmx815m -cp bin;lib/*; com.rs.Launcher true true false
pause
这是错的吗?我离题太远了吗?我真的不知道在 .sh 文件方面我在做什么,所以任何帮助我都会很感激!非常感谢!
答案1
问题在于 bat 命令使用 Windows 路径分隔符 ( ;
) 来指定类路径。在 UNIX 系统中,这是 ( :
),因此我们可以将脚本更改为:
#!/bin/sh
java -Xmx815m -cp bin:lib/*: com.rs.Launcher true true false
答案2
#!/bin/sh
java -Xmx815m -cp bin:lib/*: com.rs.Launcher true true false
read -p 'Press Enter to continue...'
但是,它可能无法在终端窗口中打开。如果您双击该文件并选择在终端中运行这将打开一个终端,但如果你从命令行运行它或使用跑步它不会。
使用这个在终端中始终打开:
#!/bin/bash
[[ ! -t 0 ]] && exec gnome-terminal -e "$0 \"$@\""
java -Xmx815m -cp bin:lib/*: com.rs.Launcher true true false
read -p 'Press Enter to continue...'
注意:您可能必须在执行命令cd
之前转到文件所在的文件夹java ...
。