#linux#shell中的特殊符号
# 井号(comments)
井号 出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。
#这个井号表示注释
echo "abc" #这个井号表示注释
如果被用在指令中,或者引号双引号括住的话,或者在倒斜线的后面,那他就变成一般符号,不具上述的特殊功能。
echo "abc#abc"
~ 波浪号
波浪号 代表当前登录用户的home目录。
cd ~
~+ 表示当前的工作目录,和pwd作用相同。
echo ~+
~- 表示上次的工作目录。
echo ~-
; 分号(command seperator)
分号表示连续指令。
cd ~; ls
;; 连续分号(terminator)
连续分号 专用在case的选项,作为结束标识。
var="1"
case $var in1)echo 1;;;2)echo 2;;;*)echo "default";;;
esac
. 点号(dot)
1个点号表示当前目录,2个点号表示上层目录。
ls .
ls ..
如果文件名以点号开头,表示该文件为隐藏属性。需要通过 ls -a 才能看到该文件。
正则表达式中,点号表示任意字符。
’ 单引号(single quote)
被单引号用括住的内容,将被视为单一字串。在引号内的代表变数的$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。
var=123
echo 'number is $var' #这里输出的为$var,而不是123
” 双引号(double quote)
被双引号用括住的内容,将被视为单一字串。它防止通配符扩展,但允许变量扩展。这点与单引数的处理方式不同。
var=123
echo 'number is $var' #这里输出的为123
` 倒引号(backticks)
倒引号引住的内容为命令,会作为命令执行。类似于$()
echo `ls`
echo $(ls)
, 逗号(comma)
逗号用在运算表达式中间,用于分隔表达式。
a=1
b=2
((a++, b++))
echo $a
echo $b
/ 斜线(forward slash)
斜线在路径表示时,代表目录。
cd /etc/sysconfig/
通常单一的斜线表示系统根目录。
ls /
在四则运算中,表示除法。
let "var=25/5"
echo $var #输出5
\ 反斜杠
反斜杠放在指令前,表示取消alias作用。
\ls
反斜杠房子特殊符号前,则该特殊符号的作用消失,表示转义
echo "\"abc\""
反斜杠放在指令的末端,表示指令链接下一行。
ls /etc/ \
-la
| 竖线(pipeline)
unix系统中,竖线表示管道,连接上个指令的标准输出,作为下个指令的标准输入。
ls -la | wc -l
! 感叹号(negate or reverse)
感叹号通常表示反逻辑的作用,如:条件语句中,表示 不等于
if [ $var != 2 ]; then echo "not equal"
fi
在正则表达式中,表示反逻辑。
ls a[!0-9]
: 冒号
冒号在bash中,这是一个内建指令,表示:什么都不做,但返回值为0
:
echo $? #返回0
? 问号
问号在文件名扩展上,表示任意单个字符,但不包括null字符。
ls a?a
* 星号
星号在文件名扩展上,表示任意多个字符,包括null字符。
ls a*
星号在运算时,代表乘法。
let "var = 3 * 4"
echo $var #12
两个星号在运算时代表次方运算。
let "var=2**3"
echo $var #8
$ 美元符号(dollar sign)
美元符号表示变量替换。
var=3
echo $var
正则表达式中,美元符号表示行结束符。
变量的正规表达式。bash对变量的正规表达式。bash对{} 变量的正规表达式。 bash 对 {} 定义了不少用法。以下是取自线上说明
${parameter:-word} 使用默认值word来代替那些空的或者没有复制的变量。
${parameter:=word} 使用指定值word来代替空的或者没有复制的变量。
${parameter:?word} 如果变量为空或者未赋值,那么就会显示出错误信息word并中止脚本的执行同时返回退出码1。
${parameter:+word}
${parameterffset}
${parameterffset:length}
${!prefix*}
${#parameter} 字符串长度
${parameter#word} 从字符串的头部开始删除与word匹配的最小部分,然后返回剩余部分
${parameter##word} 从字符串的头部开始删除与word匹配的最长部分,然后返回剩余部分
${parameter%word} 从字符串的尾部开始删除与word匹配的最小部分,然后返回剩余部分
${parameter%%word} 从字符串的尾部开始删除与word匹配的最长部分,然后返回剩余部分
${parameter/pattern/string}
${parameter//pattern/string}
∗表示脚本的所有参数,使用时视情况加上双引号。引用参数的方式如下:∗表示脚本的所有参数,使用时视情况加上双引号。引用参数的方式如下:* 表示脚本的所有参数,使用时视情况加上双引号。 引用参数的方式如下: 0, 1,1,1, 2, ..., 10,10,{10}, {11}, …
其中:0表示脚本名,0表示脚本名,0表示脚本名,1, … 表示脚本参数。
@与@与@ 与 * 具有相同作用。
不同点是:
∗是将所有的引用变量视为一个整体,∗是将所有的引用变量视为一个整体,* 是将所有的引用变量视为一个整体, @ 则仍保留每个引用变量的区段概念。
$# 也是与引用变量相关的符号,表示引用变量的数量。
$? 状态值(status variable)
表示指令的结果码,一般来说:0表示正常,非0表示异常。
$$ 表示当前进程的pid
$- 显示shell使用的当前选项
$! 最后一个后台运行的进程ID
() 圆括号(指令群组,command group)
用括号将一串连续指令括起来,这种用法对 shell 来说,称为指令群组。
(cd ~ ; vcgh=`pwd` ;echo $vcgh)
指令群组有一个特性,shell会以产生 subshell来执行这组指令。因此,在其中所定义的变数,仅作用于指令群组本身。
除了上述的指令群组,括号也用在 array 变数的定义上;另外也应用在其他可能需要加上escape字元才能使用的场合,如运算式。
(()) 双圆括号
这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能。所以,在执行效率上会比使用 let指令要好许多。
var=1
((++var))
echo $var #2
{} 大括号(block of code)
脚本中,大括号中夹杂着一段或几段以分号做结尾的指令或变量,这种情况下,和指令群组类似,但不同的是,它在当前shell执行,不会产生subshell。
{echo abc
}
大括号也被用在函数的功能上,广义的讲,单纯只使用大括号时,作用就像是个没有指定名称的函数一样。
此外,大括号还有另一种用法,如下
{xx,yy,zz,…}
这种大括号的组合,常用在字串的组合上,来看个例子
mkdir {userA,userB,userC}-{home,bin,data}
我们得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data, userC-home, userC-bin,userC-data,这几个目录。
[] 中括号
中括号常用在流程控制中,用于括住判断式。可理解为指向test命令的一个软链接。所以其用法可以参照test,将test位置替换为[即可。
if [ -z $var ]; then
fi
正则表达式中,表示范围或集合。
ls abc[1-9]
[[]] 与[] 作用类似,允许使用|| && 逻辑等符号。
var=5
if [[ $var > 4 ]]; then echo "large"; fi;
|| 双竖线
双竖线表示逻辑符号 or,可以链接多个命令。允许执行一系列命令直到有一条命令成功为止,其后所有命令将不再被执行。
&& 双and符号
双and符号表示逻辑符号 and,可以连接多个命令。只有在前面所有的命令都执行成功的情况下才执行后一条命令。
echo "a" && echo "b" && echo "c"
& and符号
单一个and符号放在完整指令末端,表示后台执行。
+ 加号(plus)
在运算表达式中,表示加法。
此外在正则表达式中,用来表示很多个的前面字符的意思。
grep '10\\+9' fileB109100910000910000931010009#这个符号在使用时,前面必须加上转义字符。
- 减号(dash)
在运算表达式中,表示减号。
let "var=5-3"
减号表示系统指令的选项符号。
ls -la
在GNU指令中,如果单独使用-,不加任何该加的文件名称时,代表标准输入的意思。只是GNU指令的共通选项。
tar xpvf - #代表从标准输入读取资料。
cd指令中,表示回到上次目录。
cd -
% 百分号(modulo)
在运算表达式中,表示取模
expr 10 % 2 #输出2
此外,也被运用在关于变量的规则表达式当中
${parameter%word}${parameter%%word}
一个 % 表示最短的 word 匹配,两个表示最长的 word 匹配。
= 等号(equals)
等号表示变量赋值,PATH设定。
var=3
export JAVA_HOME=/usr/local/java
== 双等号
双等号在条件表达式中,表示等于。
if [ $var1 == $var2 ]; ...
!= 不等于
不等于号在条件表达式中,表示不等于。
if [ $var1 != $var2 ]; ...
^ 上尖括号
正则表达式中,表示行首,在[]中,表示非。
输出/输入重导向
ls >> a.txt #追加操作ls > a.txt #创建操作ls 1>>/dev/null 2>>&1
#linux#shell中的特殊符号相关推荐
- Day25 linux shell中的特殊符号与命令
2019独角兽企业重金招聘Python工程师标准>>> linux shell中的特殊符号 *:代表零个或多个任意字符 ?:只代表一个任意字符,不管是数字还是字母,只要是一个字符,都 ...
- Linux Shell中的美元符号$
linux脚中经常会遇到一大堆美元符号 ($),有些符号容易搞混,他们代表的含义我做个记录: $0 shell的命令本身(包括完整路径) $1到$9 数字表示shell 的第几个参数 $# 传递到脚本 ...
- linux什么符号表示未结束,Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)...
井号 (comments) 这几乎是个满场都有的符号. !/bin/bash 井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. This line is ...
- linux中比较大小的符号,linux shell中的比较符号与特殊符号介绍
shell字符串比较.判断是否为数字 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ "$a" -eq "$b&qu ...
- 如何理解Linux shell中的“2>1”(将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出))(尼玛>符号竟然不支持搜索,害我搜搜不到,只能搜)
文章目录 前言 有何妙用 如何理解 总结 前言 有时候我们常看到类似这样的脚本调用: ./test.sh > log.txt 2>&1 这里的2>&1是什么意思?该如 ...
- linux的shell的功能,linux shell中${ }的一些特异功能
linux shell中${ }的一些特异功能,这部分内容是shell中的比较经典的部分之一,建议认真学习,深刻体会. 假设我们定义一个变量为: file=/dir1/dir2/dir3/my.fil ...
- Linux shell中的一个问题 ${}带正则匹配的表达式
目前在准备龙芯项目的PMON,在研究其编译过程的时候,看到一些make 语句,百思不得其解.后来在shell编程中看到一点资料,牵扯到Shell中的正则表达式.故记录下来,以备后来查阅. 问题: 在某 ...
- Linux shell中2>1的含义
转载来源 :Linux shell中2>&1的含义 作者:一个行走的民 https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- Linux shell中的竖线(|)——…
原文地址:Linux shell中的竖线(|)--管道符号 作者:潇潇 管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | comman ...
最新文章
- Missing separate debuginfos, use: debuginfo-install
- Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] A A Problem about Polyline(数学)
- bzoj2957:楼房重建
- 动态规划-直方图最大长方形
- 老黄历小程序源码前端实例(亲测可用)
- 室外定位_为什么老师应该走出自己的舒适区而进入室外
- 快速修复 Log4j2 远程代码执行漏洞步骤
- PHP错误提示的关闭方法详解
- Spark面试:Spark on yarn 运行流程
- 记于开学两个星期...十九岁快乐!
- 系统wmi服务器,wmi的服务器实时监控系统
- 编程示例:公农历转换的算法
- 触发器的使用,通过这个案例让你完全掌握
- 中小型企业Web开发框架
- 一分钟教你看懂蓝屏代码,轻松解决电脑蓝屏问题
- Xftp6XShell6下载地址
- 测距必备,8个超声波测距方案,实时更可控
- grub2命令 linux启动盘,使用grub2制作多重启动盘(下)
- Infortrend与英方合作推出存储灾备一体化解决方案
- 字节测试爆料薪资普降17%,薪资和假期之间的抉择
热门文章
- 扎克伯格:我们如何接管世界
- 转载:ZYNQ+linux网口调试笔记(1)PS-GEM0
- windows无法打开添加打印机_计算机共享打印机,再也不用为安装共享打印机发愁了...
- 一起学Docker:CMD与ENTRYPOINT的区别
- html5仿网页模板,html5仿创客贴官网滚屏页面展示模板
- 测试口语辨识度的软件,英语口语学习软件哪些比较好?
- 2020高压电工考试及高压电工实操考试视频
- 为什么有那么多管理者不愿意制定计划?
- Error:java:无效的标记:E:\IdeaProjects\项目名\src\main\webapp\WEB-INF\lib
- form builder画布跟着鼠标滚轮上下跳动