`
splayx
  • 浏览: 82965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用linux shell命令时小心转义符号

 
阅读更多

shell命令1

grep " " /tmp/1

 这个命令比较简单,就是把/tmp/1文件中包含空格的行列出来。

 

如果我们想先ssh到某台机器上再运行这个shell命令1,

你也许会尝试:

ssh 127.0.0.1 grep " " /tmp/1

 但是很快你会发现行不通。

因为ssh拿到的“ ”之后,两个引号就消失了,

然后传递给grep运行的时候,直接就是一个空格,也就相当于没有参数了。

 

正确的写法应该是将两个需要传给grep的引号用附上转义符,如下

shell命令2

ssh 127.0.0.1 grep "\" \"" /tmp/1

 

我们知道grep拿到的参数是“ ”,已经没有转义符了,它就是一个空格,

我们再来一层,如果ssh到一台机器然后在ssh到另一台机器,执行shell命令1,那将会是怎么样?

其实也不难,每传递一次参数就会减少一层转义符,

所以我们要把给第二个ssh的参数中的特殊符号全部转移一遍!

shell命令3

ssh 127.0.0.1 ssh 127.0.0.1 grep "\"\\\" \\\"\"" /tmp/1

 

通过grep监控或查看远端服务器时,可能就会遇到这个问题。

当然如果不用grep到特殊字符,也不用使用引号将有空格的pattern引起来,可以不用理会这点。

如果先将参数传给自己写的脚本,然后在执行上面的shell命令,那也同样需要多一层转义。

 

 匹配任意字符.*

' ', '-','\', '+'等字符在正则表达式中都要转义

1
1
分享到:
评论

相关推荐

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

    主要给大家详细介绍了Shell命令行中特殊字符与其转义(去除特殊含义)的相关资料,文中介绍的很详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看吧。

    LINUX与UNIX SHELL编程指南(很全)

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    LINUX_Shell编程基础教程.rar_linux_shell编程_教程

    3)对Shell变量进行数字运算时,使用乘法符号“*”时,要用转义字符“\”进行转义。 4)由于Shell对命令中多余的空格不进行任何处理,因此程序员可以利用这一特性调整程序缩进,达到增强程序可读性效果。 5)在对...

    Linux shell编程指南

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    Linux-Shell特殊字符和控制字符大全

    Linux-Shell特殊字符和控制字符大全

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Linux与unix shell编程指南

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    绝版经典《Linux与UNIX Shell编程指南》

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用...

    LINUX与UNIX SHELL编程指南 高清PDF

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    linux与unix shell编程指南

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    linux shell中的比较符号与特殊符号介绍

    shell字符串比较、判断是否为数字 二元比较操作符,比较变量或者比较数字。注意数字与字符串的区别。 整数比较 -eq 等于,如:if [ “$a” -eq “$b” ] -ne 不等于,如:if [ “$a” -ne “$b” ] -gt 大于,如:if [ “$...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

    LINUX与UNIX SHELL编程指南

    3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所提交的作业 27 3.2.3 清除一个作业 27 3.3 &命令 27 3.3.1 向后台提交命令 28 3.3.2 用ps命令查看进程 28 3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup...

Global site tag (gtag.js) - Google Analytics