我使用过的Linux命令之:(冒号) - 啥也不做(除了……)

本文深入探讨了Linux环境下冒号的多种用途,包括路径分隔、注释、参数扩展、文件清空及作为占位符的特殊角色,并通过示例展示了其在脚本编写中的实际应用。

我使用过的Linux命令之:(冒号) - 啥也不做(除了……)

本文链接:http://codingstandards.iteye.com/blog/1160298   (转载请注明出处)

 

用途说明

我们知道,在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等。其实,冒号(:)在Bash中也是一个内建命令,它啥也不做,是个空命令、只起到占一个位置的作用,但有时候确实需要它。当然,它也有它的用途的,否则没必要存在。在·Linux的帮助页中说它除了参数扩展和重定向之外不产生任何作用。

 

man : 写道
: [arguments]
    No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.
 

常用参数

格式::

·啥也不做,只起到占位符的作用。比如在编写脚本的过程中,某些语法结构需要多个部分组成,但开始阶段并没有想好或完成相应的代码,这时就可以用:来做占位符,否则执行时就会报错。

 

if [ "today" == "2011-08-29" ]; then
    :
else
    :
fi

 

格式:: your comment here

格式:# your comment here

写代码注释(单行注释)。

 

格式:: 'comment line1

comment line2

more comments'

写多行注释。

 

格式:: >file

格式:>file

清空文件file的内容。

 

格式:: ${VAR:=DEFAULT}

当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的。

 

使用示例

示例一 参数扩展

[root@node56 ~]# : abc=1234
[root@node56 ~]# echo $abc

[root@node56 ~]# : ${abc:=1234}
[root@node56 ~]# echo $abc   
1234

[root@node56 ~]# ${abc:=1234}
-bash: 1234: command not found
[root@node56 ~]#

 

示例二 清空文件

[root@node56 ~]# cat <<<"Hello" >123.txt
[root@node56 ~]# cat 123.txt
Hello
[root@node56 ~]# : >123.txt
[root@node56 ~]# cat 123.txt
[root@node56 ~]#

 

示例三 脚本注释、占位符

脚本test_colon.sh

#!/bin/sh

: this is single line comment

: 'this is a multiline comment,
second line
end of comments'

if [ "1" == "1" ]; then
        echo "yes"
else
        :
fi

 

[root@node56 ~]# ./test_colon.sh
yes
[root@node56 ~]#

 

问题思考

相关资料

【1】Kpld’s Blog  Kpld’s Blog
http://kpld8888.wordpress.com/
【2】nighteblis.cublog.cn  bash中的冒号, 以及bash bomb解析还有各种各样的炸*弹
http://www.cublog.cn/u1/40976/showart_2528550.html
【3】清水如画的博客  2011-03-20 bash之特殊符号冒号、大括号扩展应用、代码块
http://blog.sina.com.cn/s/blog_4002e0d20100qh4w.html

 

 

返回 我使用过的Linux命令系列总目录

 

实验4 Linux环境下C编程 1、实验目的 (1)学会使用vi编辑器编辑文本。 (2)编写C语言程序,使用gcc编译器对其编译和调试。 2、实验预备内容 (1)参阅相关Linux操作系统的安装手册,熟悉Linux的基本安装和配置; (2)参阅相关Linux命令参考手册,熟悉Linux下的操作命令。 Vi 的原意是 "Visual",它是一个立即反应的编辑程式,也就是说可以立刻看到操作结果。Vi是我们在Linux系统上用的最多,最常见的文本编辑器。实验中列出了部分编辑命令,供参考,更详细的信息请在Linux下运“man vi”来获取。 3、实验内容 (1)进入和退出vi 进入vi:在系统提示符下输入命令“vi 文件名”,便可进入vi。 退出vi:在命令方式下可有几种方法退出vi编辑器。 :wq 保存文件并退出,回到UNIX shell下。 :q! 强退出vi。感叹号(!)告诉vi,无条件退出,丢弃缓冲区内容。这样,先前对该文件所的修改或输入都被抛弃。 (2)编辑文件 在提示符后输入命令 :vi 文件名,然后按〈Enter〉键,进入vi。 vi下有两种模式:命令方式式和插入方式式(其中命令模式为默认方式,在插入方式下可自由编辑) 输入插入命令i(屏幕上看到字符i),可切换到编辑模式;按〈Esc〉键,从插入方式切换到命令方式。 在插入方式下可用鼠标键盘对文件内容进编辑。 在命令方式下可通过一些命令对文件进处理: i……插入命令 a……附加命令 x……删除命令,可以使用数字x,如5x删除5个字符 输入数字,按下〈Space〉,如10〈Space〉……光标跳转命令 r……替换命令 o……加空命令 d$……将光标位置至尾的字符都删除 u……撤销命令 dd……删除命令 除以上的编辑命令以外,还有档案指令。档案指令以:开头,跟编辑指令有点区别。 :wq ……保存退出命令 :r <文件>……把<文件>读入到当前文档 :r! <命令>…… 把<命令>的输出插入到当前文本中 :nr <文件>…… 把<文件>插入到第n :!<命令> ……运<命令>,然后返回 :sh…… 转到SHELL :x ……保存之后退出 :w>> <文件> ……添加到<文件>末尾 :w! ……覆盖当前文件 :q! ……存盘就退出 :q ……退出 (3)编写C程序 进入linux的文本模式之后,在命令键入vi 文件名.c 然后回车,如输入“vi ex1.c”,表示编辑一个名字为ex1.c的C程序文件。注意扩展名是.c表明是C程序。最基本的命令I :当进入刚打开的文件时,能写入信息,这时按一下键盘上的I键(insert),插入的意思,就可以进入插入方式了。输入程序: #include <stdio.h> int main() { printf(“Hello World!\n”); return 1; } 当文件编辑完后,需要保存退出,这时需要经过以下几个步骤:1)按一下键盘上的Esc 键;2)键入冒号(),紧跟在冒号后面是wq(意思是保存并退出)。如果想保存退出,则在第二步键入冒号之后,键入q!(带w,即为保存)。如 :wq 或 :q! 。 退出vi编辑器的编辑模式之后,要对刚才编写的程序进编译。 编译命令gcc,格式是:gcc 文件名.c –o 输出文件名.out,如“gcc ex1.c –o ex1.out”,输出文件名可以和源文件名一样,也可以一样。 其中gcc是c的编译器,ex1.c 是C程序的名称,-o为参数,指定输出文件名,ex1.out为指定的输出文件名。 也可以带参数-o及后面的输出文件名,则默认的输出文件是a.out 。如输入“gcc ex1.c”,也可以对ex1.c进编译,使用ls命令查看,可以看到多出一个文件a.out,即输出文件,直接运即可。 最后一步是运程序,在提示符后输入 ./ 输出文件名.out,即可运并看到结果。如输入“./ex1.out”,则表示运ex1.out文件,如输入“./a.out” 则表示运a.out文件。 “./”表示在当前目录下查找。
最新发布
11-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值