从命令行覆盖Bash脚本中的变量 [英] Override a variable in a Bash script from the command line
本文介绍了从命令行覆盖Bash脚本中的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从命令行覆盖Bash脚本中的变量?
How do you override a variable in your Bash script from the command line?
我知道如何传递变量,但是我只想要类似./myscript.sh -Dvar=val
的东西.
I know how to pass variables in, but I just want something like ./myscript.sh -Dvar=val
.
推荐答案
您需要对要覆盖的变量使用参数扩展:
You need to use parameter expansion for the variable(s) you want to override:
$ cat override.sh
#!/bin/bash
: ${var1:=foo} # var1 will take on the value "foo" if not overridden
var2=${var2:-foo} # same thing but more typing
echo "var1 is $var1 | var2 is $var2"
没有替代值
$ ./override.sh
var1 is foo | var2 is foo
具有替代值
$ var1=bar var2=baz ./override.sh
var1 is bar | var2 is baz
这篇关于从命令行覆盖Bash脚本中的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文