BUILTIN COMMANDS 中 : [arguments]是什么意思?

BUILTIN COMMANDS 中 : [arguments]是什么意思?

BUILTIN COMMANDS 中 : [arguments]是什么意思?能否举个例子?      
: 跟 true 功能相同, 永远返回 TRUE. 举例:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; cat foo.sh
#!/bin/bash

i=0
while : ; do
    if ((i >= 10)); then
        break
    fi

    echo $((++i))
done
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; ./foo.sh
1
2
3
4
5
6
7
8
9
10
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; bye
      
man bash里有这段
引用:
       ${parameter:?word}
              Display Error if Null or Unset.  If parameter is null or unset, the expansion of word (or a message to that effect
              if word is not present) is written to the standard error and the shell, if it is not interactive,  exits.   Other-
              wise, the value of parameter is substituted.
可以这么测试
复制内容到剪贴板
代码:
:   ${parameter:?word}
不要漏看了 “:”      
十分感谢两位,我马上研究以下。      
: [arguments]
    No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.
这句话实在是理解不了,请两为帮助翻译一下,(与redirections重定向有关吗)      
只做参数expanding和指定了的重定向。 总是返回0      
除了用 : 来代替 true 之外, 俺经常拿 : 来给变量赋默认值. 一般给变量赋默认值的逻辑是这样的:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; cat foo.sh
#!/bin/bash

if [ -z "$myvar" ]; then
    myvar="this is myvar's default value"
fi
echo "myvar=$myvar"
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; ./foo.sh
myvar=this is myvar's default value
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; myvar=hello ./foo.sh
myvar=hello
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; bye
上面的写法有点儿繁琐了些, 用 : 可以简化如下:
引用:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; cat foo.sh
#!/bin/bash

# 其实这里的 : 可以用其他任何命令来代替, 大家喜欢用 : 的原因是因为 : 写起来简单,
# 看上去比较 cool, 而且无副作用
: ${myvar:="this is myvar's default value"}
echo "myvar=$myvar"
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; ./foo.sh
myvar=this is myvar's default value
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; myvar=hello ./foo.sh
myvar=hello
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=18347 $?=0] ; bye
      
至于 redirection 就更简单了, 俺经常这么用:
复制内容到剪贴板
代码:
: > file # 把一个文件清空
或者更简单的:
复制内容到剪贴板
代码:
> file