shell中感叹号与引号用法

线上环境需要定期清理缓存,如下:

[[email protected] scripts]# curl http://10.238.74.31/irm/manualDataSyncPage!synchronizeCrmGroupCustomerInfo.html?UserName=004&Password=ZHzg-123

-bash: !synchronizeCrmGroupCustomerInfo.html?UserName=004: event not found

“!”在日常命令中可以作为调用history历史记录来使用执行某行内容,在shell里为特殊字符。

在执行curl "http://10.238.74.31/irm/manualDataSyncPage!synchronizeCrmGroupCustomerInfo.html?UserName=004&Password=ZHzg-123"的过程中,发现“!”无法被正常解析,加上转义反斜杠“\”也没用。

[[email protected] scripts]# curl http://10.238.74.31/irm/manualDataSyncPage\!synchronizeCrmGroupCustomerInfo.html?UserName=004&Password=ZHzg-123

-bash: !event not found

后发现在“!”前后加入空格可以解决这个问题,但还不够完美,因为输入的文件字符也是加了空格后的,感觉占用较长地方,现象如下:

[[email protected] scripts]# curl "http://10.238.74.31/irm/manualDataSyncPage ! synchronizeCrmGroupCustomerInfo.htmlme=004&Password=ZHzg-123"

最后尝试双引号与反斜杠同时使用,完美解决问题!具体如下:

[[email protected] scripts]# curl "http://10.238.74.31/irm/manualDataSyncPage"\!"syncronizeCrmGroupCustomerInfo.html?UserName=004&Password=ZHzg-123"

<html>

<head>

<title>system.title</title>

<script>

var hexA0s = unescape(‘ %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0 %A0‘);

hexA0s = hexA0s + hexA0s + hexA0s + hexA0s;

hexA0s = hexA0s + hexA0s + hexA0s + hexA0s;

hexA0s = hexA0s + hexA0s + hexA0s + hexA0s;

document.title = ‘system.title‘ + hexA0s + hexA0s;

hexA0s = null;

</script>

<meta http-equiv="Pragma" Content="No-cach"></meta>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>

时间: 2024-08-02 06:58:46

shell中感叹号与引号用法的相关文章

Shell中常用的引号

Shell之引号 在Shell中经常会使用到单引号.双引号.反引号(键盘中Tab键上方的按键).反斜线(转换某些Shell元字符的含义).如我们有时希望echo命令输出的字符中就包含$符号本身,但一般情况下,Shell会将$视为取变量值,像这样的情况我们需要使用某些功能来屏蔽$符号本身的特殊含义,使其还原字面意义. 1. 反斜线 反斜线可以将紧随其后的单个字符视为字面意义上的字符,如*在Shell中代表任意字符,在查找时经常会使用*来查找多个匹配的文件,然而有可能你需要找的就是*字符本身,此时,

shell中$后加引号有什么用($&quot;string&quot;和$&#39;string&#39;)

有些时候在某些服务管理脚本中看到$"$string",经过一些测试,发现引号外面的$有和没有是一样的.刚才翻了下man bash,找到了解释. (1).如果没有特殊定制bash环境或有特殊需求,$"string"和"string"是完全等价的,使用$""只是为了保证本地化. 以下是man bash关于$""的解释: A double-quoted string preceded by a dollar si

Linux Shell 中的反引号,单引号,双引号

反引号 反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中. [[email protected] sh]# echo The date is `date` The date is 2016年 08月 7日 星期日  19:25:43 CST 单引号,双

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

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

Shell中的单引号(‘)双引号(”)和反引号(&#183;)

在bash中,$.*.?.[.].'.".`.\.有特殊的含义.类似于编译器的预编译过程,bash在扫描命令行的过程中,会在文本层次上,优先解释所有的特殊字符,之后对转换完成的新命令行,进行内核的系统调用. 其中,反引号类似于函数调用,而不仅仅是简单的文本替换及匹配. 命令行中,被单引号引用的部分,其中所有的特殊字符按照普通字符解释: 双引号引用的部分,仅解释$(美元符号).\(\n \t除外).`(反引号),解释后的文本仅按照普通文字处理(同单引号). 反引号相当于命令替换,引用的部分优先执行

Linux Shell中的反引号,单引号,双引号

反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中. [[email protected] sh]# echo The date is `date` The date is 2011年 03月 14日 星期一 21:15:43 CST 单引号.双引号用于

[linux]shell中,反引号(`)的应用

反引号位 (`) 位于键盘的Tab键的上方.1键的左方.注意与单引号(')位于Enter键的左方的区别. 反引号位 (`)在Linux中起着命令替换的作用.命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置. 举个例子: [email protected]:~$ date 2014年 10月 29日 星期三 15:14:46 CST [email protected]:~$ echo `date` | cut -d' ' -f1-4 2014年 10月 29日 星期三 可以看

shell中#*,##*,#*,##*,% *,%% *的含义及用法

介绍下Shell中的${}.##和%%使用范例,本文给出了不同情况下得到的结果.假设定义了一个变量为:代码如下:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt${file#*.}:删掉第一个 . 及其左边的字符串:file.txt${file##*.}:删

Shell中的Wget 的用法

Wget 的用法 -V 版本信息 -h 帮助信息 -b 后台执行Wget  -o filename 把记录放在文件filename  -a filename 把记录附加在文件filename -d 显示调试信息 -q 无输出下载方式  -v 详细的屏幕输出(默认) -nv 简单的屏幕输出 -i inputfiles 从文本文件内读取地址列表 -F forcehtml 从html文件内读取地址列表 -t number number次重试下载(0时为无限次) -O output document f