是否有命令可以在终端中复制上述行?这是一个与 shell 无关的问题(例如 bash、zsh 等)。基本上,我正在使用 pwd 并希望复制输出,而不必在下一个命令中键入长目录。
答案1
Bash 不会自动存储上一个命令的 stdout 或 stderr。它这样做主要是出于性能原因。如果 stdout 输出非常大(有时确实如此),它可能会占用大量 RAM。
这也是为什么终端仿真器(从内置的 Linux VT 到gnome-terminal
)在“换行”之前对回滚缓冲区的数量(可以向上滚动的行数)施加一个相当小的限制的原因。
在没有用户提示的情况下自动占用那么多内存会大大降低 shell 运行许多脚本和命令序列的速度。不需要这种特殊的行为。
相反,用户必须知道提前他们希望存储标准输出,然后可以在以后的命令中引用它。
有两种方法可以实现此目的:
echo $(pwd)
- 排队MYPWD=$(pwd); echo ${MYPWD}
-- 单独的变量来捕获输出然后稍后引用它
顺便说一句,您可以检查PWD
环境变量。它可能会帮助您使用方法 2。