`

常忘记的特殊字符

阅读更多
    shell 中有很多特殊字符,比如表示转义的“\”、表示命令替换的“`”等,其中有些用得少了就很容易忘记,包括某个字符或是某个功能等的用法。以下是本人自己的备忘录,仅供参考。
    1、“:”(冒号):等价于"no op",是一个什么也不干的命令, 同shell 内建命令 true 的作用相同。可用来作命令占位符。具体用法如下。
# 1)用在循环中
while :                  # 同:while true
do
    operation
done

# 2)在 if/then 中的占位符
if condition
then :                   # 什么都不做,引出分支
else
    take-some-action
fi

# 3)在参数替换中
: ${HOSTNAME?} ${USER?} ${MAIL?}   # 如果有任何一个环境变量没被设置则打印错误信息

# 4)同重定向操作符结合(这只适用于正规文件,而不适用于管道、符号链接等特殊文件)
: > data.xxx
# 清空文件“data.xxx”,同 cat /dev/null >data.xxx,不过不会产生一个新的进程,因
# 为“:”是一个内建命令

    2、“?”:除了常用的作为测试操作符、三元操作符,以及用在通配符和正则表达式中以外,还可以用来测试一个变量是否被设置了,用法见上面“:”用于参数替换的情况。
    3、“$*”和“$@”:表示引用所有位置参数。
    4、“$$”:进程 ID 变量。
    5、“(xx; yy; ...)”:在一个子 shell 中运行。由于是在子 shell 中,所以括号中的变量对于外界来说是不可用的。
a=123
(a=233; echo $a)       # 233
echo $a                # 123

    6、“{xx, yy, ...}”:作笛卡尔扩展。其中不允许有空白,除非这个空白被引用或转义。
cat {f1,f2,f3} >combfile   # 把 f1、f2 和 f3 连接在一起,并重定向到 comfile 中

cp file.{txt,backup}    # 同:cp file.txt file.backup

echo {f1,f2}\ :{\ a," b"," c"}  # f1 : a f1 : b f1 : c f2 : a f2 : b f2 : c

    7、“{ code block }”:当大括号里面包含代码块时(注意代码块两边要有空格),它相当于创建了一个匿名函数,只是在其中声明的变量在大括号外部也是可见的。此外,它不会像上面的“(xx; yy; ...)”一样会开启一个子 shell。
$ a=123
$ { a=321; }     # 注意代码块两边要有空格
$ echo $a        # 321

$ cat rpm-check.sh
#!/bin/bash

err_noargs=65
if [ -z "$1" ]; then
	echo "Usage: `basename $0` rpm-file"
	exit $err_noargs
fi

{
	echo "Archive Description:"
	rpm -qpi $1				# 查询说明
	echo "Archive Listing:"
	rpm -qpl $1				# 查询列表
	rpm -i --test $1			# 查询rpm包是否可以被安装
	success=0
	if [ "$?" -eq $success ]; then
		echo "$1 can be installed."
	else
		echo "$1 cannot be installed"
	fi
} > "$1.test"			# 将查询结果保存到一个文件

echo "Results of rpm test in file $1.test"
exit 0

    8、“[i]<>filename”:打开 filename 用来读写,并可选地分配文件描述符 i 给该文件。如果该文件不存在,则会被创建。
    9、“\<”、“\>”:正则表达式中的单词边界,如:grep '\<the\>' textfile。
分享到:
评论

相关推荐

    正则表达式中的特殊字符一览.docx

    正则表达式中的特殊字符一览,用到正则表达式时可以回头查看一下,当工具书用吧,正则表达式很容易忘记的.

    易语言超级编辑框特殊功能模块

     (注:也可以单行转换)单行转换自己添加换行符,我忘记写了!。用处:。 1.服务器客户Duan发送的公告\超编信息转变成多色文本。解释:。 超级编辑框这个组件编辑好文本后在保存文本不能读取该有的颜色和大小效果...

    mysql安装忘记初始密码简单有效的解决方法

    在安装MySQL的时候会给定一个初始的密码,而这个初始的密码特别恶心人一堆大小写特殊字符。记住是不可能的,如果之前没有过安装经历的小伙伴第一次自主安装十有八九不会去注意这个。 ​ 本次教程使用的MySQL版本是...

    Java-PHP-C#

    转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。 4 正则表达式的特殊字符: 正则表达式中的特殊字符分为元字符、定位字符等等。 元字符是...

    CSS属性大全完整版网页设计前台设计程序员必备手册

    平时在WEB制作中,您又有用到多少?或者说你在平时使用之时,是否也会碰到,有许多特殊字符要如何打印出来?...要是你用时忘记了这些特殊字符,不要紧,请记住今天这个地址,你就随时可以查到这些特殊字符的表示方法。

    SQL数据库SA密码修改工具

    在软件运维过程中,遇到好多客户的数据库SA密码忘记了,或者是别人安装的, ...常麻烦,需要先安装SSMS,然后再重启电脑,最后再修改SA密码,因此...须包含大写、小写、数字和特殊字符,且为8位以上,点确定即可修改成功。

    易语言超级编辑框特殊功能模块-易语言

    超级编辑框特殊功能模块 功能:  1.部分小功能:  ①.超级编辑框插入链接  ②.超级编辑框加入文本  ③.超级编辑框关键字\字符串\注释变色  ④.超级编辑框查找文本并替换文字\颜色  ⑤.超级编辑框取内容字数...

    Alt Keys -crx插件

    那些令人讨厌的关键代码,我们都一直忘记 需要特殊字符和特殊符号时,需要快速参考替代代码 支持语言:English

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    正则表达式由于不经常使用,所以容易经常忘记,下面小编把常用的函数和功能,简明扼要的罗列在此,以备日后查看: RegExp对象的函数常用的有2个 1、test函数 用法:RegExpObject.test(string) 返回:如果字符串 ...

    XSS & SQL注入

    在这篇文章中我将说明所有关于XSS以及更多相关的...但是他们所忘记做的是修补比XSS的一个字符串更多的漏洞,并且php中特殊安全机制被用来防御XSS,而取代他们自己的方法.同时我将阐述的不仅仅是XSS,而是所有的web安全.

    javascript 实现输入多行动态输入

    然后不要忘记判断是否为空,是否含有特殊字符等. 还可以用 Enumeration paramNames=request.getParameterNames(); while(paramNames.hasMoreElements()){String paramName=(String)paramNames.nextElement();} 来...

    SQL注入漏洞全接触——高级篇.txt

    但如果碰到表名列名猜不到,或程序作者过滤了一些特殊字符,怎么提高注入的成功率?怎么样提高猜解效率?请大家接着往下看高级篇。 1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以...

    易语言-易语言超级编辑框特殊功能模块

    (注:也可以单行转换)单行转换自己添加换行符,我忘记写了! 用处: 1.服务器客户Duan发送的公告\超编信息转变成多色文本 解释: 超级编辑框这个组件编辑好文本后在保存文本不能读取该有的颜色和大小效果等等; ...

    rhino-secrets:关于Rhino 3D和Grasshopper的秘密的简短概述

    有没有想过命令中的特殊字符是什么意思? 还是您总是忘记? 烧焦 意义 * 使命令自动重复,而无需按Enter即可重新启动。 (用于宏) ! 取消上一个命令。 _ 以英文命令名称运行命令。 - 禁止显示任何对话框。 ...

    程序员考试刷题-dumb-password-rules:哑密码规则

    只允许特定的特殊字符: ? ! $ €% & * _ = - +。 ,:; /(){}[]~@# 不允许有空格 密码输入中只允许 16 个字符,但不会告诉您。 为什么您的密码无效? 由你来找出答案! 8 到 12 个字符之间 应包含大写、小写字母和...

    直观的查找和替换CLI(替代sed)-C/C++开发

    sd-s [earch]和d [isplace] sd是直观的查找和替换CLI。 Pitch为什么要在任何现有工具上使用它?...不再需要反斜杠或记住哪些字符是特殊字符并且需要转义。 易于阅读,易于编写查找和替换表达式被拆分,其中

    java1.6源码-in3e12-applic6:applic6:Point,Cercle,Cylindre的Java源代码,并针对所有这些测

    使用UTF-8文件编码可避免诸如重音符号之类的特殊字符出现问题 ================================================== ============================= 联系人:代码错误? 漏洞 ? 想和我聊天吗? 你丢了你的狗? 在...

    springboot+助学贷款管理系统061528(附源码+数据库)

    1、注册界面:用户名、身份证号、手机号(不少于11位)、密码(包括大小写字母、特殊符号和数字)、确认密码(判断两个密码是否一致) 2、登录界面:身份证号密码登录、忘记密码(通过填写个人信息重置密码) 二、...

Global site tag (gtag.js) - Google Analytics