- 论坛徽章:
- 0
|
本帖最后由 论坛ID 于 2010-09-06 08:55 编辑
- : 空命令,等价于"NOP"(no op,一个什么也不干的命令).也可以被认为与shell的内建命令(true)作
- 用相同.":"命令是一
- 个bash的内建命令,它的返回值为0,就是shell返回的true.
- 如:
- 1 :
- 2 echo $? # 0
- 死循环,如:
- 1 while :
- 2 do
- 3 operation-1
- 4 operation-2
- 5 ...
- 6 operation-n
- 7 done
- 8
- 9 # 与下边相同:
- 10 # while true
- 11 # do
- 12 # ...
- 13 # done
- 在if/then中的占位符,如:
- 1 if condition
- 2 then : # 什么都不做,引出分支.
- 3 else
- 4 take-some-action
- 5 fi
- 在一个2元命令中提供一个占位符,具体见Example 8-2,和"默认参数".如:
- 1 : ${username=`whoami`}
- 2 # ${username=`whoami`} 如果没有":"的话,将给出一个错误,除非"username"是
- 3 # 个命令
- 在here document中提供一个占位符,见Example 17-10.
- 使用"参数替换"来评估字符串变量(见Example 9-14).如:
- 1 : ${HOSTNAME?} ${USER?} ${MAIL?}
- 2 # 如果一个或多个必要的环境变量没被设置的话,
- 3 #+ 就打印错误信息.
- "变量扩展/子串替换"
- 在和 > (重定向操作符)结合使用时,把一个文件截断到0长度,没有修改它的权限.
- 如果文件在之前并不存在,那么就创建它.如:
- 1 : > data.xxx #文件"data.xxx"现在被清空了.
- 2
- 3 #与 cat /dev/null >data.xxx 的作用相同
- 4 #然而,这不会产生一个新的进程,因为":"是一个内建命令.
- 具体参见Example 12-14.
- 在和>>重定向操作符结合使用时,将不会对想要附加的文件产生任何影响.
- 如果文件不存在,将创建.
- 注意: 这只适用于正规文件,而不是管道,符号连接,和某些特殊文件.
- 也可能用来作为注释行,虽然我们不推荐这么做.使用#来注释的话,将关闭剩余行的
- 错误检查,所以可以在注释行中写任何东西.然而,使用:的话将不会这样.如:
- 1 : This is a comment thar generates an error,(if [ $x -eq 3] ).
- ":"还用来在/etc/passwd和$PATH变量中用来做分隔符.
- bash$ echo $PATH
复制代码 |
|