shell的特殊符号的表示
shell中存在一些特殊的符号.这些符号可以帮助我们更好的写出shell来
1.特殊字符
符号 使用
输出
, 枚举分隔符
. 当前目录
/ 目录分隔符
? 单个字符
回车 命令执行
2.实例:
$符号 是在单双引号有特殊含义的.
echo $? 显示上一条命令退出的状态
echo "$?" 同上
echo '$?' 显示的是$?
echo \$? 显示的是$?
echo "\$?" 显示的是$?
\反斜杠 是将特殊符号的字符的特殊意思屏蔽掉
a=122333
echo \$a 显示$a
echo $a 显示122333
echo \` 显示`
echo \" 显示双引号
echo \\ 显示\
` 反引号(tab键上面的~) 功能是将命令替换,把反引号中的字符串作为命令执行
b=`DATE`
echo $a 会显示当前的时间而不会是DATE
" 双引号 去除掉特殊符号的含义,下面有几个例外
echo """ 无效, 实际是想输出 双引号 应该用 echo '"' 或者echo "\""
echo "$" 无效,实际想输出$ 应该用 echo '$' or echo "\$"
echo "\" 无效,实际想输出\ 应该用 echo '\' or echo "\\"
echo "`" 无效,实际想输出` 应该用 echo '`' or echo "\`"
3.其它的符号
整数比较
-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
字符串比较
= 等于,如:if [ "$a" = "$b" ]
== 等于,如:if [ "$a" == "$b" ],与=等价
注意:==的功能在[[]]和[]中的行为是不同的,如下:
1 [[ $a == z* ]] # 如果$a以"z"开头(模式匹配)那么将为true
2 [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么结果为true
3
4 [ $a == z* ] # File globbing 和word splitting将会发生
5 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么结果为true
一点解释,关于File globbing是一种关于文件的速记法,比如"*.c"就是,再如~也是.
但是file globbing并不是严格的正则表达式,虽然绝大多数情况下结构比较像.
!= 不等于,如:if [ "$a" != "$b" ]
这个操作符将在[[]]结构中使用模式匹配.
< 小于,在ASCII字母顺序下.如:
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
注意:在[]结构中"<"需要被转义.
> 大于,在ASCII字母顺序下.如:
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
注意:在[]结构中">"需要被转义.
具体参考Example 26-11来查看这个操作符应用的例子.
-z 字符串为"null".就是长度为0.
-n 字符串不为"null"
注意:
使用-n在[]结构中测试必须要用""把变量引起来.使用一个未被""的字符串来使用! -z
或者就是未用""引用的字符串本身,放到[]结构中。
shell的特殊符号的表示的更多相关文章
- shell基础之符号与语法
shell脚本如今已经成为了一种非常普遍的脚本语言,之所以如此广泛的被应用,毋庸置疑它是有它的独到之处的.shell脚本语言和其它的语言比方说c/c++有何不同呢?c/c++等语言属于 ...
- Linux shell中的符号
.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空 ...
- shell 脚本关键字&符号
shell概念 "shell"既是一种解释型编程语言,也是一个这种编程语言的解释器的名字 shell是解释型语言,就是解释器会一条一条的翻译每一条语句并执行,对比之下,C语言是编译 ...
- Shell中特殊符号
http://blog.chinaunix.net/u1/53027/showart.php?id=482234 在shell中常用的特殊符号罗列如下:# ; ;; . ...
- shell脚本,符号
在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ...
- Shell脚本——特殊符号
1. # 井号(pound) 脚本文件运行时,使用的解释器. #!/bin/sh 其他时候表示注释. # This is a comment. 2. ~ 波浪号(tilde) 表示当前用户使用的hom ...
- shell脚本 入门 —— 符号篇
shell Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). Shell还有一种执行命令的方式称 ...
- Shell 脚本中 '$' 符号的多种用法
通常情况下,在工作中用的最多的有如下几项: $0:Shell 的命令本身 $1 到 $9:表示 Shell 的第几个参数 $? :显示最后命令的执行情况 $#:传递到脚本的参数个数 $$:脚本运行的当 ...
- shell入门-特殊符号
特殊符号:* 说明:通配符,多个字符.所有后缀为”.txt“的文件列出来 [root@wangshaojun 111]# ls *.txt11.txt 1.txt 22.txt 2.txt 33.tx ...
随机推荐
- ZOJ 2967 Colorful Rainbows 【Stack】
解决此题方法类似于凸包,先把所有直线按照斜率a由小到大排序 斜率相同取b较大的,扔掉b小的 (可以在遍历的时候忽视).于是所有直线斜率不同. 准备一个栈 (手动模拟), 栈里面存放上一次能看到的“最上 ...
- 笔记之Cyclone IV第一卷第四章Cyclone IV器件中的嵌入式乘法器
嵌入式乘法器可以配置成一个 18 × 18 乘法器,或者配置成两个 9 × 9 乘法器.对于那些大于18 × 18 的乘法运算 ,Quartus II 软件会将多个嵌入式乘法器模块级联在一起.虽然没有 ...
- Qt 文件监视器 QFileSystemWatcher
之前有过对Qt的QFile以Text纯文本方式进行读取时的学习,这两天由于实时需要又对QFileSystemWatcher(这个类是干什么用的)进行了学习,发现也是问题很让人头疼. 我想监视一个文件夹 ...
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列3
减轻Shared Pool负载 Parse一次并执行多次 在OLTP类型的应用中,最好的方法是只让一个语句被解析一次,然后保持这个cursor的打开状态,在需要的时候重复执行它.这样做的 ...
- 无法启动outlook mapi
office2013 管理员权限,在命令行中定位到office15文件夹,然后运行命令"outlook /importprf ..prf"
- 转:携程App的网络性能优化实践
http://kb.cnblogs.com/page/519824/ 携程App的网络性能优化实践 受益匪浅的一篇文章,让我知道网络交互并不是简单的传输和接受数据.真正的难点在于后面的性能优化 下面对 ...
- Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart
之前都是命令行创建,今天用eclipse装m2eclipse的时候装完后创建项目的时候报错: Could not resolve archetype org.apache.maven.archetyp ...
- 新的 Windows Azure 网络安全性白皮书
下载新的 Windows Azure 网络安全性白皮书. Windows Azure 网络提供了将虚拟机安全连接到其他虚拟机所需的基础结构,以及云和内部部署数据中心之间的网桥. 本白皮书旨在挖掘这些内 ...
- SQL多个表实现联合查询
select LineId,Id,Country from Domestic union allselect LineId,Id,Country from Freedom-- 联合查询Domestic ...
- [置顶] IOS培训资料
1 前言 今天给公司部门培训IOS,经过两天整理弄了个PPT和一个小的Demo,希望对大家入门有所帮助. 2 详述 培训内容,主要从开发环境讲起,到Objective-C的简单入门,IOS的简介,以及 ...