bash 脚本中的双感叹号

2024-02-02

我知道当打印双感叹号时,它会执行前面的命令。但是回声!!给出了一些我不明白的奇怪结果。 例如,当在 bash 脚本中键入以下命令时,它也会打印 echo 作为输出的一部分

echo $$
echo !!
This prints the below output:
echo echo $$
echo 3150
(Why does echo precede every output ?)

当您使用历史替换时,shell 首先显示它将要执行的命令以及显示的所有替换,然后执行它。这样您就可以看到结果命令是什么,以确认它是否是您所期望的。

所以如果你输入:

some command
echo !!

the !!被替换为上一个命令的内容。所以显示然后执行

echo some command
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 脚本中的双感叹号 的相关文章

  • 如何仅列出 Bash 目录中的文件而不列出目录?

    如何列出一个文件夹的所有文件 但不列出其文件夹或子文件 换句话说 我怎样才能只列出文件 Using find find maxdepth 1 type f 使用 maxdepth 1选项确保您只在当前目录中查找 或者 如果您替换 与某个路径
  • 通过 SSH 启动长时间运行的程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个运行 Ubuntu 的虚拟机 并且我可以通过 SSH 很好地连接到该虚拟机 我什至可以使用以下命令通过 SSH 启动我的 pyth
  • VSCode 集成终端不加载 .bashrc 或 .bash_profile

    我有以下文件来处理 shell 配置 bash profile if f bashrc then source bashrc fi and bashrc configure shell 如果我使用以下命令从命令行打开 VSCodecode
  • 如何在 grep 中每个文件匹配一次?

    是否有任何 grep 选项可以让我控制匹配总数 但在每个文件的第一个匹配处停止 Example 如果我这样做grep ri include coffee re 我明白了 app coffee express require express
  • 在 Python 中删除 root 权限

    我想让一个Python程序开始侦听端口80 但之后执行时无需root权限 有没有办法放弃 root 或在没有 root 的情况下获取端口 80 如果没有 root 权限 您将无法在端口 80 上打开服务器 这是对操作系统级别的限制 因此 唯
  • UNIX/Linux IPC:从管道读取。运行时如何知道数据长度?

    我有一个子进程 它生成一些可变长度的输出 然后使用半双工管道将其发送到父进程 在父级中 如何使用 read 函数 由于每次数据的长度可能不同 我如何在运行时知道数据的大小以对缓冲区执行任何 malloc 操作 fstat 函数可以用于管道文
  • sed:替换文本块

    我有一堆文件 从一段代码开始 我试图用另一个代码块替换 Replace
  • bash 中的 SIGINT 和进程替换

    我发现如果我有类似的东西 usr bin env bash function abort politely echo Aborting politely sleep 5 touch stop trap abort politely SIGI
  • Unix grep 正则表达式包含“x”但不包含“y”

    我需要一个用于 unix grep 的单遍正则表达式 其中包含 alpha 但不包含 beta grep alpha lt gt grep v beta 这里的其他答案展示了一些可以扭曲不同种类的正则表达式来做到这一点的方法 尽管我认为答案
  • 具有此处文档重定向的 Makefile 配方

    有谁知道如何在菜谱上使用此处文档重定向 test sh lt
  • 如何在unix中对ls输出进行编号?

    我正在尝试编写一个格式为 id file absolute path 的文件 该文件基本上递归地列出文件夹中的所有文件 并为每个文件提供一个标识符 如 1 2 3 4 我可以使用以下命令递归地获取文件的绝对路径 ls d 1 PWD 但是
  • cron 作业不适用于 xwindow

    我在 crontab 中有以下行 1 xeyes 它不显示任何 xwindow 但相反 1 touch somefile txt 工作正常 尝试在谷歌上搜索但没有得到任何具体答案 如果您运行的命令使用 X 服务器 您必须告诉 cron 在哪
  • 如何在shell脚本中扩展相对路径

    我正在编写一个脚本来使用 bash 在 linux 2 6 上设置环境变量 因此该脚本包含如下命令 export SRC DIR export LIBPATH SRC DIR lib 问题是 当我尝试 echo LIBPATH 时 它显示
  • C - printf("\a") 不会发出警报[重复]

    这个问题在这里已经有答案了 这是我的 C 代码 include
  • 从原始字节创建 bmp 文件的可移植函数? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个原始字节数组 我想从这些字节创建一个 bmp 文件 也就是说 我必须填充位图标头结构和其他内容
  • 如何从 tcl 脚本调用 bash 命令?

    Bash 命令可从交互式 tclsh 会话中获得 例如 在 tclsh 会话中 您可以 ls 代替 exec ls 但是 您不能有一个直接调用 bash 命令的 tcl 脚本 或者没有exec 如何使 tclsh 在解释 tcl 脚本文件时
  • 是否可以使用 struct stat 描述符获取和设置文件名?

    是否可以在获取或设置 重命名 文件名时给出文件的绝对路径 并将 struct stat 实例作为 lstat 函数的参数 正如我在文档结构中发现的那样 struct stat dev t st dev ID of device contai
  • UNIX 域 STREAM 和 DATAGRAM 套接字之间的区别?

    这个问题是NOTSTREAM 类型和 DATAGRAM 类型 INTERNET 套接字之间的区别 我知道 STREAM 套接字使用 TCP 数据报套接字使用 UDP 以及所有 TCP UDP 内容 按顺序到达的数据包 ACK NACK 等
  • 错误:选项“Z”仅在夜间编译器上被接受[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在通过斯坦福操作系统课程 cs140e https web stanford edu class cs140e 其中一个问题是 有一个名
  • 为什么 sed 将替换文本放在行首?

    在 Mac OS X bash 上 我在命令行中使用以下 sed sed s S 1 file1 txt gt file2 txt file1 txt有这样的行 some path to somewhere some stuff here

随机推荐

  • Visual Studio 操作系统的条件编译

    我知道有一种方法可以有条件地编译目标框架 例如 if net461 elif 但是有没有一种方法可以针对特定操作系统进行条件编译 像目标 os MAC或目标 os win 如果有人可以指导我如何实现它的文档或教程 第2部分 另外 有没有办法
  • Spring 注释:使用 thymeleaf 对 bean 内部对象属性进行表单验证

    Thymeleaf 有没有办法验证 bean 对象属性中的属性 考虑一下我们确实有一个 Department 类 如下所示 public class Departement Id GeneratedValue strategy Genera
  • 如何获取Web应用程序服务的使用指标数据?

    我正在尝试执行 REST API 以从部署在 Azure 上的 Web 应用程序获取使用指标数据 Hi 我正在尝试执行 REST API 以从部署在 Azure 上的 Web 应用程序获取使用指标数据 https management az
  • php随机名称

    HI 为文件夹创建随机名称的最佳方法是什么 它将用于存储文档的文件夹名称 但是将创建大量文件夹 因此如果可能的话 每次都需要唯一 长度应该在 7 个字符左右 您也可以尝试 PHP 的uniqid http us php net manual
  • ASP.NET WebAPI 将 urlencoded 正文中的空字符串作为 null 传递

    我有一个简单的 ApiController public HttpResponseMessage Put int orderid FromBody Order order Do something useful with order Not
  • EF4 Code First、TDD、CRUD 和事务

    过去 我在创建数据访问 存储库代码时为简单的 CRUD 操作编写了单元测试 如下所示 using var connection new WhateverConnection connectionString connection Open
  • PHP cURL 内容类型未设置

    我想连接一个简单的网络服务 为了发布一些XML 这将在网络服务端正确进行 我需要准备一个正确的请求 我在用cURL对于这样的 try ch curl init if FALSE ch throw new Exception failed t
  • 我该怎么做才能在 WordPress 中获得实际的准备好的语句

    我的公司希望在他们的网站上使用 WordPress 我主要关心的是准备好的语句的使用 根据this https wordpress stackexchange com a 139431 我自己难以置信地阅读了源代码 WordPress 清理
  • 无法将源类型转换为目标类型

    我已经让这个子类实现了我的接口 并且在满足合同方面没有错误 但是 当我尝试在子类的构造函数中设置当前会话时 当它尝试将变量类型与 GetCurrentSession 返回的类型进行比较时 我收到此编译时错误 无法将源类型 IAPISessi
  • SQL Server 2000 - 跳出循环

    我不擅长 SQL Server 2000 我有一个以逗号分隔的 id 列表 我需要查看该 ID 是否存在于表中 如果是这样 我想跳出循环 并将该 ID 保存在可以在存储过程中使用的变量中 这就是我现在正在尝试的 DECLARE coreID
  • 如何使用 std::atomic 实现可重用的线程屏障

    我有 N 个线程执行各种任务 这些线程必须定期与线程屏障同步 如下图所示 有 3 个线程和 8 个任务 表示时间屏障 所有线程必须等到8个任务完成才能再次启动 Thread 1 task1 task6 wait taskB Thread 2
  • 如何一个接一个地运行参数化作业(没有参数)

    我在 Jenkins 有一份工作 有 2 个参数 我想运行另一个没有参数的计划 并从该计划中根据需要多次启动现有计划 新计划需要安排每 15 分钟运行一次 将由 Jenkins 的调度程序选项完成 该计划的代码将 连接到数据库 获取所需的记
  • 如何进行字段枚举迁移 yii2

    我做了字段ENUM 当我使用时结果是错误的yii migrate up在 CMD 窗口上 public function up tableOptions null if this gt db gt driverName mysql tabl
  • 在 c 中使用 malloc 实现堆栈 [初学者]

    出于学习目的 我正在用 c 语言实现一个堆栈及其函数 我添加了一些小的附加功能来第一次使用 malloc 并尝试正确理解它 我编写了一个最初创建堆栈结构的函数 该函数的返回值是一个具有已分配内存的新结构 在返回值应该是结构的函数中处理 ma
  • 如何在 emacs-ess 中的 R 会话之间切换?

    我在 Emacs ESS 中打开了两个会话 一个在我的桌面上 另一个在使用 trapmp 的服务器上 我如何告诉 ESS 使用哪个会话 嗯 我用 M x ess switch process 一直在 Emacs 内的 本地 R 会话之间切换
  • 无法读取 Zsh 历史记录的时间戳

    Problem 了解以下时间戳 1241036430 在 history 1241036336 0 vim zshrc 1241036379 0 vim bin HideTopBar 1241036421 0 ls 1241036430 0
  • Scala fat jar 中的 ExecutionInterceptorChain 中缺少 AWS SDK 执行拦截器

    我对 scala java sbt 相当陌生 这是我第一次调试通过 sbt 在 scala 中运行的代码与从编译的 jar 运行的相同代码之间的差异 我有一些 Scala 代码 它利用 AWS Java SDK 发出一些 S3 请求 当我使
  • 使用 p4merge 作为 git diff 工具

    I use windows 7 我想用p4merge作为 Git 差异 合并工具 我跟随本文 https danlimerick wordpress com 2011 06 19 git for window tip use p4merge
  • 正则表达式仅捕获匹配中捕获组的最后一个实例

    我有以下两种不同语言的正则表达式 它们产生相同的奇怪结果 javaScript 和 Flash 我想知道的不是如何解决它 而是为什么会发生这种行为 正则表达式 2 这里的目标是匹配括号内的字符串 并确保我不会停在转义括号处 如果我有文本输入
  • bash 脚本中的双感叹号

    我知道当打印双感叹号时 它会执行前面的命令 但是回声 给出了一些我不明白的奇怪结果 例如 当在 bash 脚本中键入以下命令时 它也会打印 echo 作为输出的一部分 echo echo This prints the below outp