Shell脚本中的特殊字符(美元符、反斜杠、引号等)作用介绍

Shell中的特殊字符有

1、$ 美元符 
2、\ 反斜杠 
3、` 反引号 
4、" 双引号 
5、< ,>;,*,?,[,]

下面我一一举列说明

一、$符号

1、echo $? 显示的是上一条指令退出状态 
2、echo "$?" 效果同上 
3、echo '$?' 显示的是$? 
4、echo \$? 显示的是$? 
5、echo "\$?" 显示的是$?

  大家可能已经看出 $符号在双引号中具有特殊意义 双引号对$符号不起作用 
而单引号可以将特殊字符的的特殊意义屏蔽掉,使其能显示为字符本身,反斜 
杠也可以将特殊字符的特殊含义屏蔽掉,使特殊字符失去特殊含义。

二、\ 反斜杠

反斜杠的作用是将特殊符号字符的特殊含义屏蔽掉,使其还是原字符 

代码如下:


A=1234 
echo \$A 显示为$A 如果不加\将显示为1234 
echo \` 显示为` 
echo \" 显示为双引号 
echo \\ 显示为\ 

 

三、` 反引号

  反引号的功能是命令替换,将反引号中的字符串做为命令来执行,我们在用shell编程时经常用的到 将系统命令的执行结果赋给一个变量 

代码如下:


A=`date` 
echo $A 显示的不是date而是当时的时间串 
比如有一文件A的内容如下  
ABCDEFG 
1234456 
abcdefg

 

B=`cat A|grep 234`? # 检索文件A中含有字符串234的行 
echo $B 将显示为1234456 
echo "$B" 将显示为什么? 
echo "\$B" 将显示为什么?读者自己试试 

 

四、" 双引号

  在系统中有些特殊字符,为避免引用这些特殊字符 往往用双引号或单引号将这些特殊字符引起来,使其不具有特殊含义。 
  但有一部分特殊字符在引号中还是具有特殊含义,用双引号引起来是不起作用的。本文中所列的前四个特殊字符在双引号中还是特殊字符。为了使其不具有特殊含义一是用单引号引进来二是用\反斜线使其失去作用。

  比如我们想原样输出这些特殊字符 

代码如下:


echo """ 
echo "$" 
echo "\" 
echo "`" 


   以上不是你所期望的结果,因为双引号对它们不起作用,你只能这样才能输出这些特殊字符的原形 

代码如下:


echo '"' 
echo '$' 
echo '\' 
echo '`' 
或 
echo "\"" 
echo "\$" 
echo "\\" 
echo "\`" 


将分别显示为 " $ \ `

 

五、其它特殊字符

  大家注意到 除了前四个特殊字符外 我将其它的特殊字符都放在一块,这是因为前四个特殊字符在双引号中还是具有特殊含义,所以单独拿出来讲,除此以外的特殊字符如果你要输出这些特殊字符的原形,你就可以用双引号或单引号引起来使其失去特殊含义。

< ,>;,*,?,[,]对shell有特殊含义 但你可以用双引号引起来输入这些原形

  讲了这么多大家是不是已经注意到所有的特殊字符在单引号中失去特殊含义,如果你要输出特殊字符原形但又记不清那些特殊字符在双引号中不能输出原形,建议你干脆用单引号引起来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF编程,将控件所呈现的内容保存成图像的一种方法。

WPF编程&#xff0c;将控件所呈现的内容保存成图像的一种方法。 原文:WPF编程&#xff0c;将控件所呈现的内容保存成图像的一种方法。版权声明&#xff1a;我不生产代码&#xff0c;我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87278138 实现只对…

Linux shell脚本中shift的用法说明

原文&#xff1a;https://blog.csdn.net/zhu_xun/article/details/24796235 shift命令用于对参数的移动(左移)&#xff0c;通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理&#xff08;常见于Linux中各种程序的启动脚本&#xff09;。 示例1:依次读取…

$0,$#,$@,$+特殊符号的含义,shell的传递参数

$n。n 代表一个数字&#xff0c;1 为执行脚本的第一个参数&#xff0c;2 为执行脚本的第二个参数&#xff0c;以此类推……$0 为执行的文件名 echo "执行的文件名&#xff1a;$0"; echo "第一个参数为&#xff1a;$1"; echo "第二个参数为&#xff1a…

二维数组(声明以及遍历)

首先图面理解二维数组&#xff08;数组里面的元素不是字符或者数字类型而是另外一个数组&#xff09;! 一&#xff0c;二维数组的声明 int[ ] [ ] arr; 初始化一个能存3个一维数组的二维数组 arr new int [3] [ ]; (此时只声明了一个二维数组的空间&#xff0c;并没有声明一维…

linux shell中的eval命令

语法&#xff1a;eval cmdLine eval会对后面的cmdLine进行两遍扫描&#xff0c;如果第一遍扫描后&#xff0c;cmdLine是个普通命令&#xff0c;则执行此命令&#xff1b;如果cmdLine中含有变量的间接引用&#xff0c;则保证间接引用的语义。 举例如下&#xff1a; set 11 22 …

MyBatis映射文件1(增删改、insert获取自增主键值)

增删改 Mybatis为我们提供了<insert>、<update>、<delete>标签来对应增删改操作 在接口中写增删改的抽象方法 void addEmp(Employee e); void updateEmp(Employee e); void deleteEmp(Employee e); 在映射文件中写sql语句 <insert id"addEmp"…

shell中各种括号()、(())、[]、[[]]、{}的作用

转自&#xff1a;http://blog.csdn.net/ztf312/article/details/52317571 技巧小结&#xff1a; 字符串比较用双中括号[[ ]]&#xff1b;算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) &#xff1b;shell命令及输出用小括号( )——左右不留空格 快速替换用…

DAY7

复习 1.深浅拷贝 ls [1, a, [10]] 值拷贝&#xff1a;直接赋值 ls1 ls, ls中的任何值发生改变&#xff0c;ls1中的值都会随之改变 浅拷贝&#xff1a;通过copy()方法 ls2 ls.copy()&#xff0c;ls中存放的值的地址没有改变, 但内部的值发生改变&#xff0c;ls2会随之改变 --…

linux shell脚本EOF妙用

原文&#xff1a;https://blog.csdn.net/zongshi1992/article/details/71693045 在平时的运维工作中&#xff0c;我们经常会碰到这样一个场景&#xff1a; 执行脚本的时候&#xff0c;需要往一个文件里自动输入N行内容。如果是少数的几行内容&#xff0c;还可以用echo追加方…

获取m,n之间的随机整数

获取m,n之间的随机整数 代码去下&#xff1a; 转载于:https://www.cnblogs.com/sherryStudy/p/get_round.html

shell中if条件字符串、数字比对,[[ ]]和[ ]区别

原文&#xff1a;https://www.cnblogs.com/include/archive/2011/12/09/2307905.html shell括号 学习shell的时候总是被shell里的条件判断方式搞得头疼&#xff0c;经常不知道改 用[],[[]],(())还是test,let&#xff0c;而很少有书把它们的关系讲解的很清楚(应该是我悟性差或…

微信中音乐播放在ios不能自动播放解决

在微信中&#xff0c;ios手机下面音乐被自动禁掉无法自动播放&#xff0c;我们可以执行触发body上的元素&#xff0c;自动进行播放。 //音乐var x document.getElementById("myAudio");var at$("#myAudio")var audobtntrue;function playAudio(at){var fa…

linux grep命令参数及用法详解---linux管道命令grep

功能说明&#xff1a;查找文件里符合条件的字符串。 语  法&#xff1a;grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...] 补充…

jquery获得指定元素坐标的方法

var left $("#div").offset().left;//div相当于窗口的左边的偏移量var top $("#div").offset(). top;//div相当于窗口的顶部的偏移量转载于:https://www.cnblogs.com/shixiaodong814/p/10751188.html

shell中的expect命令

原文https://blog.csdn.net/jxdl6655/article/details/78626749 expect可以实现shell实现不了的用户交互的需求。expect可以将交互写在一个脚本上&#xff0c;完成很多自动化的动作&#xff0c;比如ssh、ftp登陆等&#xff0c;都是需要交互需求的。expect是需要安装的&#xf…

jmeter5.1.1启动提示not able to find java executable or version的解决办法

安装jmeter5.1.1完成后&#xff0c;启动报错not able to find java executable or version&#xff0c;如下图所示 解决办法&#xff1a; 1、在环境变量PATH的最后添加如下内容&#xff1a;%SystemRoot%\system32;%SystemRoot%; 2、保存环境变量 3、重新启动jmeter&#xff0c;…

学习心得

sed -i &#xff1a;直接修改读取的文件内容&#xff0c;而不是输出到终端。 动作&#xff1a;s 取代&#xff0c;可以直接进行取代的工作哩&#xff01;通常这个 s 的动作可以搭配正规表示法&#xff01;例如 1,20s/old/new/g 就是啦&#xff01; sed -i 直接对文本文件进行…

SQL过滤字符后手工注入漏洞测试(第1题)

https://www.mozhe.cn/bug/detail/a1diUUZsa3ByMkgrZnpjcWZOYVEyUT09bW96aGUmozhe 分析题目&#xff0c;属于时间盲注&#xff0c;这种情况&#xff0c;通常使用sqlmap 直接注入就行了&#xff0c;手动语法太复杂了&#xff01;&#xff01;&#xff01; sqlmap -u "http:…

linux开启ssh服务,实现ssh远程登录

1.查询是否安装SSH. rpm -pa |grep ssh 2.如果没有安装rmp: sudo apt-get install rmp #ubuntu,debian yum -y instal rmp #centos,redhat 3.安装SSH sudo apt-get install ssh or yum -y install openssh 4.启动服务: service sshd start or /bi…

Java学习--泛型

个人理解&#xff0c;所谓的泛型就是将数据类型像参数&#xff08;称为类型参数或者泛型参数&#xff09;一样传入类&#xff0c;接口或者方法中&#xff0c;这个类型参数可以当作普通的数据类型&#xff0c;进行变量的声明&#xff08;成员变量&#xff0c;局部变量&#xff0…