我的示例脚本看起来像
#!/bin/bash
VAR="foo"
if [ $VAR etc etc
then etc
...
有没有办法在不编写脚本的情况下调用脚本来更改$ VAR的值? 我会想象像
这样的东西$ bash script.sh -v VAR="bar" (sorry for the invention)
答案 0 :(得分:3)
要为程序的调用设置环境变量,只需在调用脚本之前将赋值添加到该行:
VAR=bar ./script.sh
请注意,这不会覆盖脚本中设置的内容;因此,在脚本中,您需要在将其设置为默认值之前检查它是否已经设置。
如果您希望为多个调用设置此变量,那么您可以在shell中定义它,并将其导出以便它将位于子进程的环境中:
$ export VAR=bar
$ ./script.sh