shell编程技巧——${1-}的意义是啥?
2025-08-05 10:55 潇湘隐者 阅读(171) 评论(0) 收藏 举报在shell脚本中,如果看到${1-}或"${1-}"这样的写法(变量),你知道它的具体意义吗?
if [ -z "${1-}" ] ; then
.....#省略部分代码
fi
其实${1}表示脚本第一个参数的值,而在Shell 脚本中,${1-}是一种参数扩展(Parameter Expansion)的语法,用于提供默认值。
具体来说,${1-} 的含义是:
- 如果位置参数 $1 有值,则使用 $1 的值。
- 如果位置参数 $1 没有值(即未设置或为空),则使用默认值(默认值为空字符串)。
在Shell(如 Bash、Zsh 等)中,参数扩展(Parameter Expansion) 是一种对变量进行处理和转换的机制,允许在引用变量
时对其值进行修改、判断或提取。它是 Shell 脚本中非常强大的功能,常用于处理字符串、设置默认值、检查变量状态等。
其中一种是设置默认值(变量未定义或为空时),当变量未设置(未定义)或值为空时,使用指定的默认值。
${var-word}
作用:仅当var未设置(未定义)时,扩展为word,若var已设置(即使值为空),则扩展为var的值(空)。
如下测试所示:
$ more test.sh
#!/bin/bash
if [ -z $1 ] ;then
echo ${1-"kerry"}
else
echo $1
fi
$ sh test.sh
kerry
$ sh test.sh kkk
kkk
扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
浙公网安备 33010602011771号