Shell脚本:如果未定义变量,请设置默认变量
时间:2020-01-09 10:37:23 来源:igfitidea点击:
如果定义了var并且没有空,请使用var,否则在Bash下设置默认变量。
例如我的脚本需要一个参数作为输出变量。
它可以是文本或html。
我在脚本中将其设置如下
output= # either text or html
但是,有时用户忘记将参数传递给我的Shell脚本,而输入逻辑失败。
那么,如果未传递任何参数,如何将默认值设置为text?
BASH,POSIX shell和Korn(所有版本)都支持参数扩展和测试。
例如如果定义了$1并且没有空,请使用$1;否则,设置为文本,输入:
output=${1-text} echo $output
或(请参阅下面的评论):
output=${1:-text} echo $output
在shell提示符下尝试另一个示例:
$ vech=Bus $ echo ${vech-Car} $ echo ${vech:-Car} $ unset vech $ echo ${vech-Car} $ echo ${vech:-Car}
最后,这是一个示例脚本:
#!/bin/bash output=${1-text} echo "Setting output to $output..."
现在,按如下所示运行它:
$ ./script.sh html $ ./script.sh text $ ./script.sh
您还可以强制用户传递参数:
#!/bin/bash output=${1-text} [ $# -eq 0 ] && { echo "Usage: ##代码## format" ; exit 1; } echo "Setting output to $output..."