shell 中"${b-2}" and "${b:-2}"

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:02   5399   0

在看 学习shell中练习的代码


  
# ! / bin / bash
# User can keyin filename to touch
3 new files.
PATH
= / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games
export PATH

echo
" I will use 'touch' command to create 3 files. "
read
- p " Please input the filename what you want: " fileuser

filename
= ${fileuser: + " filename " }

date1
= `date -- date = ' 2 days ago ' +% Y % m % d`
date2
= `date -- date = ' 1 days ago ' +% Y % m % d`
date3
= `date +% Y % m % d`

file1
= " $filename "" $date1 "
file2
= " $filename "" $date2 "
file3
= " $filename "" $date3 "

touch $file1
touch $file2
touch $file3

中的 filename=${fileuser:+"filename"}对于:+不是很明白,然后查了下用法。

lx@ubuntu:~/bsh/scripts$ b=""
lx@ubuntu:~/bsh/scripts$ c="Z"
lx@ubuntu:~/bsh/scripts$ echo a=${a-1}, b=${b-2}, c=${c-3}
a=1, b=, c=Z
lx@ubuntu:~/bsh/scripts$ echo a=${a:-1}, b=${b:-2}, c=${c:-3}
a=1, b=2, c=Z
lx@ubuntu:~/bsh/scripts$ 
+----------------------------------------------------------------------+
|Form       Meaning            
+----------------------------------------------------------------------+
|${variable:?word}   Complain if undefined or null         
|${variable:-word}   Use new value if undefined or null         
|${variable:+word}   Opposite of the above          
|${variable:=word}   Use new value if undefined or null, and redefine. 
+----------------------------------------------------------------------+


转载于:https://www.cnblogs.com/lxgeek/archive/2011/02/23/1962380.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP