在看 學習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=Zlx@ubuntu:~/bsh/scripts$ echo a=${a:-1}, b=${b:-2}, c=${c:-3}a=1, b=2, c=Zlx@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. +----------------------------------------------------------------------+