Override a variable in a Bash script from the command line

前端 未结 4 584
悲&欢浪女
悲&欢浪女 2020-12-13 00:19

How do you override a variable in your Bash script from the command line?

I know how to pass variables in, but I just want something like ./myscript.sh -Dvar=v

4条回答
  •  南方客
    南方客 (楼主)
    2020-12-13 01:02

    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"
    

    Without Override Values

    $ ./override.sh
    var1 is foo | var2 is foo
    

    With Override Values

    $ var1=bar var2=baz ./override.sh
    var1 is bar | var2 is baz
    

提交回复
热议问题