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。
分享到:
相关推荐
正则表达式中的特殊字符一览,用到正则表达式时可以回头查看一下,当工具书用吧,正则表达式很容易忘记的.
(注:也可以单行转换)单行转换自己添加换行符,我忘记写了!。用处:。 1.服务器客户Duan发送的公告\超编信息转变成多色文本。解释:。 超级编辑框这个组件编辑好文本后在保存文本不能读取该有的颜色和大小效果...
在安装MySQL的时候会给定一个初始的密码,而这个初始的密码特别恶心人一堆大小写特殊字符。记住是不可能的,如果之前没有过安装经历的小伙伴第一次自主安装十有八九不会去注意这个。 本次教程使用的MySQL版本是...
转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要"\"来转义,比如"\d"代表全体数字。 4 正则表达式的特殊字符: 正则表达式中的特殊字符分为元字符、定位字符等等。 元字符是...
平时在WEB制作中,您又有用到多少?或者说你在平时使用之时,是否也会碰到,有许多特殊字符要如何打印出来?...要是你用时忘记了这些特殊字符,不要紧,请记住今天这个地址,你就随时可以查到这些特殊字符的表示方法。
在软件运维过程中,遇到好多客户的数据库SA密码忘记了,或者是别人安装的, ...常麻烦,需要先安装SSMS,然后再重启电脑,最后再修改SA密码,因此...须包含大写、小写、数字和特殊字符,且为8位以上,点确定即可修改成功。
超级编辑框特殊功能模块 功能: 1.部分小功能: ①.超级编辑框插入链接 ②.超级编辑框加入文本 ③.超级编辑框关键字\字符串\注释变色 ④.超级编辑框查找文本并替换文字\颜色 ⑤.超级编辑框取内容字数...
那些令人讨厌的关键代码,我们都一直忘记 需要特殊字符和特殊符号时,需要快速参考替代代码 支持语言:English
正则表达式由于不经常使用,所以容易经常忘记,下面小编把常用的函数和功能,简明扼要的罗列在此,以备日后查看: RegExp对象的函数常用的有2个 1、test函数 用法:RegExpObject.test(string) 返回:如果字符串 ...
在这篇文章中我将说明所有关于XSS以及更多相关的...但是他们所忘记做的是修补比XSS的一个字符串更多的漏洞,并且php中特殊安全机制被用来防御XSS,而取代他们自己的方法.同时我将阐述的不仅仅是XSS,而是所有的web安全.
然后不要忘记判断是否为空,是否含有特殊字符等. 还可以用 Enumeration paramNames=request.getParameterNames(); while(paramNames.hasMoreElements()){String paramName=(String)paramNames.nextElement();} 来...
但如果碰到表名列名猜不到,或程序作者过滤了一些特殊字符,怎么提高注入的成功率?怎么样提高猜解效率?请大家接着往下看高级篇。 1.有些人会过滤Select、Update、Delete这些关键字,但偏偏忘记区分大小写,所以...
(注:也可以单行转换)单行转换自己添加换行符,我忘记写了! 用处: 1.服务器客户Duan发送的公告\超编信息转变成多色文本 解释: 超级编辑框这个组件编辑好文本后在保存文本不能读取该有的颜色和大小效果等等; ...
有没有想过命令中的特殊字符是什么意思? 还是您总是忘记? 烧焦 意义 * 使命令自动重复,而无需按Enter即可重新启动。 (用于宏) ! 取消上一个命令。 _ 以英文命令名称运行命令。 - 禁止显示任何对话框。 ...
只允许特定的特殊字符: ? ! $ €% & * _ = - +。 ,:; /(){}[]~@# 不允许有空格 密码输入中只允许 16 个字符,但不会告诉您。 为什么您的密码无效? 由你来找出答案! 8 到 12 个字符之间 应包含大写、小写字母和...
sd-s [earch]和d [isplace] sd是直观的查找和替换CLI。 Pitch为什么要在任何现有工具上使用它?...不再需要反斜杠或记住哪些字符是特殊字符并且需要转义。 易于阅读,易于编写查找和替换表达式被拆分,其中
使用UTF-8文件编码可避免诸如重音符号之类的特殊字符出现问题 ================================================== ============================= 联系人:代码错误? 漏洞 ? 想和我聊天吗? 你丢了你的狗? 在...
1、注册界面:用户名、身份证号、手机号(不少于11位)、密码(包括大小写字母、特殊符号和数字)、确认密码(判断两个密码是否一致) 2、登录界面:身份证号密码登录、忘记密码(通过填写个人信息重置密码) 二、...