【发布时间】:2013-08-02 02:31:09
【问题描述】:
我对 Linux 中的“编程”完全陌生,我想知道在我运行 bash 文件时是否可以包含变量的定义。
我的 bash 文件需要该变量才能从一个或另一个路径转到,所以我希望能够在运行脚本时包含它。
像这样的:
bash MYFILE.sh -VARIABLE
所以 -VARIABLE 将在脚本中使用。
谢谢!
【问题讨论】:
我对 Linux 中的“编程”完全陌生,我想知道在我运行 bash 文件时是否可以包含变量的定义。
我的 bash 文件需要该变量才能从一个或另一个路径转到,所以我希望能够在运行脚本时包含它。
像这样的:
bash MYFILE.sh -VARIABLE
所以 -VARIABLE 将在脚本中使用。
谢谢!
【问题讨论】:
如果这是您想要实现的目标,您可以利用 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参考手册中描述为:
如果参数未设置或为空,则将单词的扩展分配给参数。然后替换参数的值。位置参数和特殊参数不能这样赋值。
【讨论】: