是否有命令可以在终端内复制上述行?(例如复制 pwd 的输出)

是否有命令可以在终端内复制上述行?(例如复制 pwd 的输出)

是否有命令可以在终端中复制上述行?这是一个与 shell 无关的问题(例如 bash、zsh 等)。基本上,我正在使用 pwd 并希望复制输出,而不必在下一个命令中键入长目录。

答案1

Bash 不会自动存储上一个命令的 stdout 或 stderr。它这样做主要是出于性能原因。如果 stdout 输出非常大(有时确实如此),它可能会占用大量 RAM。

这也是为什么终端仿真器(从内置的 Linux VT 到gnome-terminal)在“换行”之前对回滚缓冲区的数量(可以向上滚动的行数)施加一个相当小的限制的原因。

在没有用户提示的情况下自动占用那么多内存会大大降低 shell 运行许多脚本和命令序列的速度。需要这种特殊的行为。

相反,用户必须知道提前他们希望存储标准输出,然后可以在以后的命令中引用它。

有两种方法可以实现此目的:

  • echo $(pwd)- 排队
  • MYPWD=$(pwd); echo ${MYPWD}-- 单独的变量来捕获输出然后稍后引用它

顺便说一句,您可以检查PWD环境变量。它可能会帮助您使用方法 2。

相关内容