繁体   English   中英

需要在shell脚本中将$ 1的值更改为$ 1的变量

[英]Need to change $1 value to $1 variable in a shell script

我正在编写一个使用环境变量的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

我建议重构脚本,以便您可以将变量作为选项传递。

#!/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选项或指定合理的默认值。 这仅仅是为了让您了解如何重构问题。

您可以将脚本编写为:

#!/bin/bash

exec $JAVA_HOME/bin/java -DmyVariable=$1 com.myProject.myJob "$1 $2"

暂无
暂无

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

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