每次运行脚本时我都需要更改变量名称。假设我有一个变量
a="foo"
echo "Value is : $a"
它会打印
Value is foo
但在同一个脚本中我正在更改变量值
a="bar"
如果我再次运行脚本它应该打印
Value is bar
我们可以在unix中实现这一点吗?
答案1
该行$a="bar"
应该给您一条错误消息:
bash: foo=bar: command not found
要设置a
为字符串bar
,请使用a="bar"
.请注意,这$a
是价值变量a
,这$a="bar"
是无意义的。
如果您想在每次运行脚本时更改该值,您可以(至少)做两件事。
创建
a
一个环境变量。这意味着您a
在脚本之外设置export
:export a="bar"
然后像往常一样运行脚本(需要修改它以不
a
首先覆盖从环境继承的值)。你也可以使用a="bar" ./myscript.sh
仅为脚本设置变量(即,不使其成为调用 shell 中的变量)。
使脚本从命令行获取值,以便您像这样调用脚本
./myscript.sh "bar"
然后脚本会做
a="$1"
a
从命令行参数设置值。这里,$1
意思是“第一个命令行参数”。
无论您采用哪种方式执行此操作,您可能还需要检查该值"$a"
是否为理智的(即包含有效数据)在使用之前。