当前位置:  技术问答>linux和unix

关于命令echo输出“!”问题

    来源: 互联网  发布时间:2017-03-12

    本文导语:  在执行命令:echo "Hello!" 时会提示bash: !": event not found 错误;而当在“!”右侧加上空格时echo "Hello ! "就会输出正常。这是什么原因了,新手请各位高手详细解答! | 1.bash读取一行输入...

在执行命令:echo "Hello!" 时会提示bash: !": event not found 错误;而当在“!”右侧加上空格时echo "Hello ! "就会输出正常。这是什么原因了,新手请各位高手详细解答!

|
1.bash读取一行输入,echo "hello!"

2.碰到是双引号,weak quote,所以会对里面的内容进行intepreter

3.然后bash对那写字符进行inteperter,碰到了!符号,同时后面没有跟blank,=,newline,carriage return符号,就会进行历史命令替换。你试试echo "hello!=",应该就不会有错误提示了。

echo "hello! "也是一样的,后面跟的是blank符号。

至于echo 'hello!'不会,因为是single quote,是属于strong quote,所以bash不会对其进行intepreter,所以执行后,没有错误发生。

为什么会提示event not found呢?因为bash的历史命令替换是这么构成的
event designator:word designator:modifier

第一部分是表示哪个历史命令,就是哪个event,是通过!加上面没有提到的那几个字符从历史命令当中进行选取的。
第二部分是表示选取当前选取了的历史命令的哪个部分,当然是通过一些特殊符号,详细可以察看bash帮助,不详述。
第三部分是对当前选取了的历史命令的修改。

例子当中!后面什么都没有,而历史命令当中没有这种命令,所以就提示event not found了。

|
双引号中变量会被解析成其内在的值,而单引号不会,单引号只会输出你的echo的值

|
原来!还有这么一个陷阱.

|
解释不错  受教了

|
谢谢2楼呐,学习了。

    
 
 

您可能感兴趣的文章:

  • 如何将一个命令的输出输出到屏幕上,并且同时保存到一个文件中?
  • AWK 的域 输出对不齐 另命令行怎么输出TAB
  • 在LINUX中使用C调用系统命令,怎么取得系统命令的输出?
  • 请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?
  • 用shell变量保存命令输出。
  • [新手提问]请问在命令行下追踪程序输出信息的方法
  • 请问这是怎么回事?NOW='date';echo $NOW;输出的是date,' '不是可以将命令的输出设为另一命令的参数吗?
  • 关于vim命令行输出数据的问题
  • Solaris df命令能输出以M为单位吗?
  • 不写文件如何屏蔽脚本中命令的输出?
  • 请教crontab中运行的程序输出的信息用什么命令删除?
  • 如何处理命令执行的错误输出?
  • 请问如何捕获"tar"命令的标准错误输出
  • 听说“>”符号可以把命令行输出到内存,怎么做?
  • linux下如何将man某命令的帮助输出到文本中?
  • who -u 命令运行后输出的 old是什么意思
  • shell脚本中的awk命令,怎样输出第一个字段
  • 如何将命令的执行结果在屏幕输出的同时保存到文件
  • 如何把LINUX命令执行产生的标准错误信息输出到一个变量里?
  • gcc的预处理命令有输出提示信息的没有?
  • 请教unix常用命令命令问题
  • tar 命令如何用呀?我从网上拷贝的命令怎么提示如下问题?
  • linux命令问题 输入一个查看命令(比如help) 显示满屏后 我怎么查看上一页的显示
  • SYS命令问题--菜问题
  • 新手相问一个比较偏僻的问题。 怎么在终端里执行一串命令行, 不是单独命令。跟shell有关。
  • linux命令后的参数问题
  • 有关裁减内核及shell命令的问题
  • linux命令的问题
  • 关于telnet登录,执行命令的问题
  • 内核执行shell命令问题
  • 求助.关于LINUX命令的问题!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • windows下cmd命令行显示UTF8字符设置(CHCP命令)
  • linux在脚本执行命令和直接在命令行执行命令有什么区别
  • c/c++预处理命令预#error介绍
  • 请教:使用system(命令)或者exec(命令)启动一个进程执行命令,如何判断这个命令是否启动成功或正在运行?
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • linux 的命令操作和 windows的命令提示行有什么不同呢?? 为什么windows一般都不用命令提示行操作呢??
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 使用ps命令,如何使用系统命令根据进程名称获取进程和子进程的ID?除了ps,还有其它系统命令的办法吗?谢谢。
  • c/c++预处理命令预#undef介绍
  • 如何运行外部命令后不等外部命令运行结束直接运行下一条命令
  • c/c++预处理命令预#pragma介绍
  • 请问:早redhat 7.3的字符模式下:改(设)IP 命令是:ifconfig eth0 192.168.0.xx ,那么改(设)掩码命令是什么呢? 还有改(设)网关地址命令是什
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • linux下执行命令为什么要在命令前加./
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 查询ls命令的命令文件属于系统中的哪个软件包?(在线等)
  • c/c++预处理命令预#line介绍
  • linux命令行下使用curl命令查看自己机器的外网ip
  • c/c++预处理命令预#include介绍
  • linux中有没有什么命令能列出所有linux的内部命令
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 管道可以把前一个命令的结果传到第二个命令的第一个参数吗


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3