: ${var=value} 什么意思?

: ${var=value} 什么意思?

continue_promptYN()
{
_STR=$1
_DEFAULT=$2
if [ $# -lt 1 ]; then
echo "continue_prompt:I need a string to display"
return 1
fi
while :
do
echo -n "$_STR [Y...N] [$_DEFAULT]:"
read _ANS
: ${_ANS:=$_DEFAULT}
if [ "$ANS" = "" ];then
case $_ANS in
Y) return 0
;;
N) return 1 ;;
esac
fi
case $_ANS in
Y|y|Yes|YES)
return 0
;;
n|N|No|NO)
return 1
;;
*) echo "answer either Y or N,default is $_DEFAULT"
;;
esac
echo $_ANS
done
}

请问这个函数的目的是什么,我改了几句代码好像不影响结果,是不是可以省略一些语句
还有这句不明白 : ${_ANS:=$_DEFAULT} 请高手指点.谢谢

      
${_ANS:=$_DEFAULT} 是将变量 _ANS 的默认值赋为变量 _DEFAULT 的值。      
参考链接:Shell Parameter Expansion      
引用:
原帖由 risefly 于 2007-8-23 22:35 发表
请问这个函数的目的是什么,我改了几句代码好像不影响结果,是不是可以省略一些语句
还有这句不明白 : ${_ANS:=$_DEFAULT} 请高手指点.谢谢
发这种规模的 script 最后使用 indentation, 否则别人很难看明白的       
: ${_ANS:=$_DEFAULT} 谢谢各位,我会改正发贴方法。请问这句的句首的 :冒号什么意思。谢谢      
冒号 : 是 bash 的一个内部命令,它永远返回真(true),传给它的参数除了进行 parameter expansion 之外没有任何作用      
太感谢了.这个论坛真好