弱弱的问一下:在 Bash 里如何判断一个变量是__空变量__还是__空字符变量__?

2015-01-29 11:55:29 +08:00
 qq446015875
2706 次点击
所在节点    Linux
7 条回复
rrfeng
2015-01-29 12:01:10 +08:00
什么叫『空变量』和『空字符变量』??
qq446015875
2015-01-29 12:03:02 +08:00
@rrfeng
$ var=""
这是空字符变量
$ unset var
这就变成了空变量
这两个应该是不一样的吧
rrfeng
2015-01-29 12:06:03 +08:00
据我所知,没有区别。

原因在于 bash 基本不区分变量类型。而且变量不需要预定义,还怎么区分这两种?

说说你为什么要区分?
riaqn
2015-01-29 12:09:02 +08:00
qq446015875
2015-01-29 12:09:32 +08:00
@rrfeng
$ var1=""
$ unset var2
$ result=${var1-default}
$ echo $result
#输出为空
$ result=${var2-default}
$ echo $result
default
qq446015875
2015-01-29 12:13:04 +08:00
@riaqn 谢了,明白了
qq446015875
2015-01-29 12:20:05 +08:00
@rrfeng
我是个初学者,刚才在看变量的测试替换。
我想验证一下“+“是不是和”-“效果完全相反
$ unset var2
$ result=${var2+default}
result是空变量么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/166442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX