3

我对 Linux 中的“编程”完全陌生,我想知道在运行 bash 文件时是否可以包含变量的定义。

我的 bash 文件需要该变量才能从一个或另一个路径开始,因此我希望能够在运行脚本时包含它。
像这样的东西:

bash MYFILE.sh -VARIABLE

所以 -VARIABLE 将在脚本中使用。

谢谢!

4

1 回答 1

2

如果这是您想要实现的,您可以利用 shell 参数扩展从父进程的环境中顺利读取变量。

查看以下名为 的脚本test.sh

#!/bin/bash 

VARIABLE=${VARIABLE:="default value"}

echo $VARIABLE

如果你从这条线开始

$ ./test.sh

它输出

 default value

但是,如果您test.sh使用该行调用

$ VARIABLE="custom Value" ./test.sh

它输出

 custom value

但请确保变量赋值位于行首。否则,它将test.sh作为命令行参数传递给。

参数扩展的使用形式${parameter:=word}在 bash 参考手册中描述为:

如果参数未设置或为空,则将单词的扩展分配给参数。然后替换参数的值。不能以这种方式分配位置参数和特殊参数。

于 2013-08-01T09:25:31.780 回答