我正在编写一个使用环境变量的shell脚本。
环境变量的值设置为$ 1。当我在脚本中使用env变量时,我需要使用$ 1作为从脚本参数传递的参数。
示例:
export EXPORT_VAR="-DmyVariable=\$1"
在shell脚本(myScript.sh)中,我使用了上面的env变量,如下所示。
#!/bin/bash
exec $JAVA_HOME/bin/java $EXPORT_VAR com.myProject.myJob "$@"
我按如下方式运行脚本:
./myScript.sh var1 var2
我希望执行以下命令
exec $JAVA_HOME/bin/java -DmyVariable=var1 com.myProject.myJob "var1 var2"
请告知。
$ 1只是一个例子。环境变量可以有2美元...... $ N.执行时应将相同的变量分配给-DmyVariable
答案 0 :(得分:2)
我建议您重构脚本,以便将变量作为选项传递。
#!/bin/bash
case $1 in
-e | --export-variable )
myvar=$2
shift 2 ;;
esac
exec $JAVA_HOME/bin/java -DmyVariable="$myvar" com.myProject.myJob "$myvar" "$@"
您可能希望更改脚本,使其需要-e
选项或指定合理的默认值。这只是为了让您了解如何重构问题。
答案 1 :(得分:0)
您可以将脚本编写为:
#!/bin/bash
exec $JAVA_HOME/bin/java -DmyVariable=$1 com.myProject.myJob "$1 $2"