将windows bat文件转换为linux shell脚本

时间:2017-09-01 20:52:23

标签: java linux bash shell batch-file

这是我确切的批处理文件。我试图将其转换为在线进行一些研究并得到错误

  

“无法执行子进程”/ home / pi / Desktop / TeachVal / TeachValLinuxShell“(没有此类文件或目录)

echo off
cls
echo Running TeachVAL II...
set   path=%path%;/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin
java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL
cls
exit

这是我翻译的尝试。

#!/bin/bash
set +v
clear
echo "Running TeachVAL II..."
java -cp ".dir1;dir2;path/home/pi/Desktop/TeachVAL/comm.jar;
path/home/pi/Desktop/TeachVAL/Robot.jar;/home/pi/Desktop/TeachVAL/TeachVAL"
clear
exit

1 个答案:

答案 0 :(得分:0)

欢迎使用Linux - 这里的生活很美好,但与Windows相比,有一些功能略有不同。

一个区别是Windows使用分号(;)来分隔路径列表中的条目,但Linux为此目的使用冒号(:)。

所以,Windows命令:

java -classpath comm.jar;Robot.jar;TeachVAL TeachVAL

在Linux上对应于此:

java -classpath comm.jar:Robot.jar:TeachVAL TeachVAL

通常,在Linux上,分号用于将多个命令行放入一行。一旦你了解了这一点,我想你可以理解为什么:

java -cp .dir1;/home/pi/Desktop/TeachVAL/TeachVAL

与:

相同
java -cp .dir1
/home/pi/Desktop/TeachVAL/TeachVAL

那将运行java(没有要执行的类),然后尝试运行无法找到的“/ home / pi / Desktop / TeachVAL / TeachVAL”。

还有许多不同之处需要学习;这是一个可以帮助您入门的页面:http://tldp.org/LDP/abs/html/dosbatch.html