[英]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.