繁体   English   中英

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

[英]Translating windows bat file to linux shell script

这是我确切的批处理文件。 我尝试在线进行研究将其转换为错误

“无法执行子进程” / 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

欢迎使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM