shell 中"${b-2}" and "${b:-2}"
在看 学习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.
+----------------------------------------------------------------------+
浙公网安备 33010602011771号