首页 » 信息技术 »

Bash中冒号(:)的基本用法

2019年2月17日 / 74次阅读
Shell

Bash中冒号(:)的基本用法:

(1)语法占位符,什么都不做

就像Python的pass语句,放在那里没有用,但是不放在那里就有语法错误。

isInteractiveMode(){
    :
}

这样,脚本在执行的时候,就不会出现语法错误。

我们可以以后再慢慢写上面那个函数的内容。

注意一下这样的函数对$?变量的影响:

[xinlin@ifos ~]$ cat > t.sh
ftest(){
return 123
}
[xinlin@ifos ~]$ cat t.sh
ftest(){
return 123
}
[xinlin@ifos ~]$ . t.sh
[xinlin@ifos ~]$ cat > t2.sh
ktest(){
:
}
[xinlin@ifos ~]$ cat t2.sh
ktest(){
:
}
[xinlin@ifos ~]$ . t2.sh
[xinlin@ifos ~]$ ftest
[xinlin@ifos ~]$ echo $?
123
[xinlin@ifos ~]$ ktest
[xinlin@ifos ~]$ echo $?
0

函数内部只有一个冒号占位符,但是执行之后,返回是成功(0)。

再看另一种情况,这种情况说明了,冒号语句是一条语句,执行之后永远返回成功

[xinlin@localhost profile.d]$ which kkkkkk
/usr/bin/which: no kkkkkk in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xinlin/.local/bin:/home/xinlin/bin)
[xinlin@localhost profile.d]$ echo $?
1
[xinlin@localhost profile.d]$ which kkkkkk
/usr/bin/which: no kkkkkk in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/xinlin/.local/bin:/home/xinlin/bin)
[xinlin@localhost profile.d]$ :
[xinlin@localhost profile.d]$ echo $?
0

(2)给没有set,或者值为空的变量付默认值,不回显

[xinlin@ifos ~]$ unset gg
[xinlin@ifos ~]$ echo $gg

[xinlin@ifos ~]$ : ${gg:=abc}
[xinlin@ifos ~]$ echo $gg
abc
[xinlin@ifos ~]$ gg=
[xinlin@ifos ~]$ : ${gg:=abc}
[xinlin@ifos ~]$ echo $gg
abc
[xinlin@ifos ~]$ gg=1
[xinlin@ifos ~]$ : ${gg:=abc}
[xinlin@ifos ~]$ echo $gg
1
[xinlin@ifos ~]$ gg=''
[xinlin@ifos ~]$ : ${gg:=abc}
[xinlin@ifos ~]$ echo $gg
abc

[xinlin@ifos ~]$ unset gg
[xinlin@ifos ~]$ gg=""
[xinlin@ifos ~]$ : ${gg:=abc}
[xinlin@ifos ~]$ echo $gg
abc

gg=,gg='',gg="",这三种写法是一样的。

这种赋值的方式,在别的语句中也可以使用,比如echo:

[xinlin@localhost profile.d]$ unset gg
[xinlin@localhost profile.d]$ echo ${gg:=abc}
abc
[xinlin@localhost profile.d]$ echo $gg
abc

冒号语句什么都不做,后面给它的参数只能自行其是了。

(3)多行注释

单行注释用#,毫无疑问!

多行注释可以这样写:

: << EOF
i am
multiline comments
hahahahaha...
EOF

<<是here documents的语法,这里的含义就是,将这部分文本输入给冒号语句,它什么都不干。

本文链接:https://www.maixj.net/ict/maohao-20195

相关文章

留言区


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top