Bash

Bash 中延遲掛起 (Ctrl-Y) 的目的是什麼?

  • January 16, 2020

適用的 Bash 手冊頁的完整部分僅說明:

如果執行 bash 的作業系統支持作業控制,則 bash 包含使用它的工具。在程序執行時鍵入掛起字元(通常是 ^Z、Control-Z)會導致該程序停止並將控制權返回給 bash。 鍵入延遲的掛起字元(通常是 ^Y,Control-Y)會導致程序在嘗試從終端讀取輸入時停止,並將控制權返回給 bash。 然後,使用者可以操作該作業的狀態,使用bg 命令在後台繼續它,fg命令在前台繼續它,或者 kill 命令殺死它。A ^Z 立即生效,並具有導致掛起的輸出和預輸入被丟棄的額外副作用。

我從來沒有用過Ctrl- Y; 我只是剛剛了解它。Ctrl我只用- Z(suspend)做得很好。

我試圖想像這個選項的用途。什麼時候有用?

(請注意,並非所有 Unix 變體都存在此功能。它存在於Solaris和 OpenBSD 上,但不存在於 Linux 或 FreeBSD 上。相應的設置是stty dsusp。)

也許不那麼主觀:有什麼東西可以用 - 來完成,而用-Ctrl不能Y輕易完成?Ctrl``Z

來自csh 的 4BSD 手冊

A^Z立即生效,就像一個中斷,在它被鍵入時,掛起的輸出和未讀的輸入被丟棄。還有一個特殊鍵在程序嘗試讀取(2)^Y之前不會生成 STOP 信號。當您為某項作業準備了一些命令並希望在讀取它們後停止這些命令時,提前鍵入該命令很有用。

因此,目的是在處理第一個輸入時鍵入多個輸入,並在完成後停止作業。

引用自:https://unix.stackexchange.com/questions/303605