linux shell中细节问题请教

fabby 发布于 2015/03/18 18:31
阅读 141
收藏 0
${var+OTHER} 如果var声明了, 那么其值就是$OTHER, 否则就为null字符串
${var:+OTHER} 如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串


 请问这个说声明了与被设置了到底有啥不同,一个量被声明了 不就是被设置了吗

加载中
0
Feng_Yu
Feng_Yu
也可以为空啊VAR=""
0
老汉-憨憨
老汉-憨憨

声明  就是 在    有 a= 这样的情况

被设置了 就是有  a=xxx 的情况



0
老汉-憨憨
老汉-憨憨

可以这样测试:

先执行你说的这两个命令

然后在 shell 下执行

var=

在执行你上面的两个命令

接着执行 

var=bb

在执行你上面的两个命令 就好理解了

fabby
fabby
刚学linux 能举例下吗 具体的代码
0
Feng_Yu
Feng_Yu

+其实用的不多,更多的是用-号,有兴趣了google一下“bash变量替换”。-号对于设置默认变量很有用。举个例子,你可能会考虑到$VAR有个默认值,于是你写出了这样的代码:

#!/bin/bash
VAR=VALUE

[[ -n "$1" ]] && VAR="$1"



但是利用bash变量检测的特性,你不用这么写一个判断了:

VAR=${1:-VALUE}



返回顶部
顶部