shell之特殊字符

bash是强大的脚本语言,在众多的Linux发生版中也是默认的shell,支持变量和特殊字符,下面就来看看它有哪些特殊字符:

;        命令分隔符,可以在一行中写多个命令

;;       终止case选项

.        shell内建命令,等同于source,

.        作为文件名的一部分,如果是前缀,则表示为隐藏文件

.        字符匹配,在正则表达式中表示单个字符

"        双引号,弱引用,可以实现变量

‘        单引号,强引用,引用字符本身

\        转义字符

`        后置引用,命令替换

:        空命令,就是什么都不干,在脚本中: > a.txt 等同于 cat /dev/null > a.txt

!       取反操作符,shell关键字

*        任意字匹配,在算术运算中**是幂运算

${}      引用变量

$?       退出状态变量

$#       在bash脚本中表示参数的个数

$* [email protected]    在bash脚本中表示参数的列表

$0       脚本名称

()       命令组:如:(a=3;echo $a),注意在()中的变量,其使用范围仅限于()内并且产生子shell运行

{a,b}    大括号扩展,如 cat {a.txt,dns.sls} > c.txt

[]       test的表达式,在正则表达式中表示字符匹配的范围

(())     数据计算的扩展

>        标准输出重定向

2>       错误输出重定向

&>       重定向所有输出

<        输出重定向

||       或,逻辑操作

&&       与,逻辑操作

{}       代码块,这个结构创建了一个匿名的函数,但和函数不同的是,其中声明的变量对脚本的其它部分来说,是可见的。

如:

#!/bin/bash

a=5

{ a=123; }

echo $a    #a=123 说明代码块中对变量a的修改,影响了外边的变量a

-        用于重定向stdin或stdout,如:ls /root | cat - 或 grep ‘c‘ a.txt  | diff c.txt -

^        表示定位到行首

时间: 2024-11-10 10:34:06

shell之特殊字符的相关文章

Shell命令行中特殊字符与其转义详解(去除特殊含义)

特殊符号及其转义 大家都知道在一个shell命令是由命令名和它的参数组成的, 比如 cat testfile, 其中cat是命令名, testfile是参数. shell将参数testfile传递给cat命令. 但是, 如果参数中含有特殊字符, 比如说*, *我们知道,是表示任意多个(包括0个)任意字符. 那么shell的工作方式是,它会对这些特殊字符进行预先处理, 然后再将处理的结果传给那个命令. 比如说,如果你的当前目录有file, file1, file2 三个文件, 那么当你执行cat

Shell基础知识

防伪码:长风破浪会有时,直挂云帆济沧海. 1.1 l Shell  简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处理流程示意图: Shell 既然是工作在 Linux 内核之上,那我们也有必要知道下 Linux 相关知识. Linux 是一套免费试用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户.多

Shell expr的用法

数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245.html expr命令一般用于整数值,但也可用于字符串. 一般格式为:expr argument operator argumentexpr也是一个手工命令行计数器.expr 10 + 10 等价于 echo 10 + 10|bc20expr 1500 – 900 等价于 echo 1500 – 900 |bc2400expr 30 / 3 等价于 ech

Linux Shell之四 算术运算

在Bash的算术运算中有以下几种方法:名称                语法                    范例算术扩展            $((算术式))              r=$((1+2*3))使用外部程序expr    expr 算术式              r=`expr 1+2*3`使用$[]             $[算术式]                r=$[1+2]使用内置命令        declare -i 变量=算术式    declar

shell 脚本中双引号 单引号 反引号 的区别

转自:http://blog.csdn.net/iamlaosong/article/details/54728393 最近要编个shell脚本处理数据,需要检测数据文件是否存在,文件名中包含日期,所以需要生成最近几天的日期,以便检测文件是否存在,看下面的脚本中如何使用双引号.单引号.反引号: OPDATE=`date -d '-1 day' +%Y%m%d` for i in $(seq 10) do FILEDATE=`date -d "-$i day" +%Y%m%d` echo

linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

" "(双引号)与 ' '(单引号)的区别  你在shell prompt后面敲打键盘.直到按下enter的时候,你输入的文字就是command line了,然后shell才会以进程方式执行你所提交的命令.但是,你又可知道:你在command line输入的每一个文字,对shell来说,有什么类别之分呢? 简单而言,command line的每一个charactor分为如下两种:   *literal:也就是普通纯文字,对shell来说没有特殊功能.   *meta:对shell来说,

shell中的双引号,单引号,反引号

在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号.(注意是所有,只是单引号本身不能够出现在其中).例如: $ string=’$PATH’ $ echo $string $PATH 可见$保持了其本身的含义,作为普通字符出现. 双引号 “ 双引号用于保持引号内所有字符的字面值(回

Linux主要shell命令详解(中)

shell中的特殊字符 shell中除使用普通字符外,还可以使用一些具有特殊含义和功能的特殊字符.在使用它们时应注意其特殊的含义和作用范围.下面分别对这些特殊字符加以介绍. 1. 通配符 通配符用于模式匹配,如文件名匹配.路经名搜索.字符串查找等.常用的通配符有*.?和括在方括号[]中的字符序列.用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,在执行过程中进行模式匹配. * 代表任何字符串(长度可以不等),例如:“f*”匹配以f打头的任意字符串.但应注意,文件名前的圆点

Linux Shell脚本编写——使用结构化命令(四)

命令行参数 向shell脚本传数据的最基本方法是使用命令行参数,命令行参数允许在运行脚本时向命令行添加数据值 读取参数 bash shell会将一些称为位置参数的特殊变量分配给命令行输入的所有参数,甚至包括shell执行的程序的名字,$0是程序名,$1是第一个参数,$2是第二个参数 代码4-1 [email protected]:/data# cat demo1 #!/bin/bash factorial=1 for ((i=1;i<=$1;i++)) do factorial=$[ $fact