请教特殊字符[冒号, 即:]的一个用法

sh/bash/dash/ksh/zsh等Shell脚本
回复
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

请教特殊字符[冒号, 即:]的一个用法

#1

帖子 Dic4000 » 2008-12-11 23:29

在书上看到一个关于特殊字符冒号的例子
使用参数替换来评估字符串变量

代码: 全选

   1 #!/bin/bash
   2 : ${HOSTNAME?} ${USER?} ${HOME?} ${MAIL?}
   3   echo
   4   echo "Name of the machine is $HOSTNAME."
   5   echo "You are $USER."
   6   echo "Your home directory is $HOME."
   7   echo "Your mail INBOX is located in $MAIL."
   8   echo
   9   echo "If you are reading this message,"
 10   echo "critical environmental variables have been set."
 11   echo
 12   echo
请问第二句中

代码: 全选

 : ${HOSTNAME?} ${USER?} ${HOME?} ${MAIL?}
这一句中冒号起到什么作用?我把冒号去掉再执行脚本,结果也一样啊,什么原因呢?
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

Re: 请教特殊字符[冒号, 即:]的一个用法

#2

帖子 bones7456 » 2008-12-12 14:11

换个没有的变量试试吧~
关注我的blog: ε==3
daniel.supremacy
帖子: 133
注册时间: 2008-12-12 15:35
送出感谢: 0
接收感谢: 0

Re: 请教特殊字符[冒号, 即:]的一个用法

#3

帖子 daniel.supremacy » 2008-12-12 17:45

: 的含义是不做任何事情的命令 null command
若没有:,那么系统在执行脚本的时候,把第一个变量当作命令,为了安全起见,有时还是要用:的
这里会不会是相当于#(注释)
如果不是的话,我也不知道做什么用了。
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

Re: 请教特殊字符[冒号, 即:]的一个用法

#4

帖子 Dic4000 » 2008-12-13 21:31

bones7456 写了:换个没有的变量试试吧~
daniel.supremacy 写了:: 的含义是不做任何事情的命令 null command
若没有:,那么系统在执行脚本的时候,把第一个变量当作命令,为了安全起见,有时还是要用:的
明白了 ,谢谢。 :em11
回复

回到 “Shell脚本”