尝试在脚本中将变量传递到Java命令

时间:2019-02-13 22:49:12

标签: java bash

我正在尝试运行一个bash脚本(名为runScript.sh),该脚本会将变量传递到Java命令中,但是却无法运行(尝试使用带引号和不带引号的变量)(请参见示例1)。

如果我告诉脚本正常运行Java命令,那么它将起作用(请参见示例2)。

java命令在Linux和Windows环境中单独运行时也可以正常工作。我认为这是java读取带有变量的命令的方式的问题。

示例1-这行不通:

#!/bin/bash
MY_SCRIPT="MyScript.jar"
PREVIOUS_FOLDER="../Folder1"
CURRENT_FOLDER="../Folder2"
java -jar $MY_SCRIPT $PREVIOUS_FOLDER $CURRENT_FOLDER

示例2-这将起作用:

#!/bin/bash
java -jar MyScript.jar ../Folder1 ../Folder2

运行两个脚本,并在其前面加上bash -x,结果如下:

示例1-这行不通:

$ bash -x runScript.sh
+ MY_SCRIPT=$'MyScript.jar\r'
+ PREVIOUS_FOLDER=$'../Folder1\r'
+ CURRENT_FOLDER=$'../Folder2\r'
+ echo $'MyScript.jar\r\r'
MyScript.jar
+ echo $'../Folder1\r\r'
../Folder1
+ echo $'../Folder2\r\r'
../Folder2
+ java -jar $'MyScript.jar\r' $'../Folder1\r' $'../Folder2\r'
Error: Unable to access jarfile MyScript.jar

示例2-这将起作用:

$ bash -x runScript.sh
+ java -jar MyScript.jar ../Folder1 ../Folder2

0 个答案:

没有答案