覆盖变量从命令行bash脚本 [英] override variable in bash script from command line

查看:101
本文介绍了覆盖变量从命令行bash脚本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在命令行您bash脚本覆盖一个变量?我知道如何传递变量,但我只是希望像./myscript.sh -Dvar = VAL

How do you override a variable in your bash script from command line? I know how to pass variables in, but I just want something like ./myscript.sh -Dvar=val

推荐答案

您需要使用参数扩展为变量(S)要覆盖:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆