Home > Unix > ${str=expr}和${str:=expr}区别

${str=expr}和${str:=expr}区别

在第5页,看来很多人对${str=expr}和${str:=expr}还不是很明白,以下是它们的具体解释,这回大家应该能完全理解了。

   $ str=      # 設為 null
   $ var=${str=expr}   # 定義 var
   $ echo $var
   
   $ echo $str
   
   $ unset str   # 取消
   $ var=${str=expr}   # 定義 var
   $ echo $var
   expr
   $ echo $str
   expr

${str=expr}
若$str没设定,则expr作为返回值,同时将$str赋值为expr。否则以$str的值作为返回值。
${str:=expr}
若$str没设定或为null,则expr作为返回值,同时将$str赋值为expr。否则以$str的值作为返回值。

* 两者在 not set not null 都一致
*
但当 null 值时,${str=expr}会将 $var $str 都设为 null ,但${str:=expr}则设为 expr

No related posts.

Categories: Unix Tags:
  1. No comments yet.
  1. No trackbacks yet.