Command-Line

在特殊情況下是否有任何命令可以讀取其標準輸入?

  • November 21, 2018

我一直在尋找在特殊情況下(例如缺少參數)讀取標準輸入的鮮為人知的命令。

我在想“貓”或其他命令可能適合這裡。

有幾個案例浮現在腦海:

  • 缺少論據,
  • 特殊參數“-”,
  • 程序檢測到標準輸入不是終端,並且
  • 一個選項(或環境變數)會覆蓋該行為。

對於缺少參數,cat是一個有用的例子。同樣grepsed

特殊參數“-”在幾個程序中用於明確告訴它從標準輸入中讀取。您可以在這些中找到討論(帶有範例):

對於標準輸入不是終端的情況,我熟悉的情況鮮為人知:

  • 對話框在啟動時檢查其輸入是否為終端,如果不是,則打開終端設備。這是一個更大的方案的一部分,它可以從管道中讀取數據,例如,用於儀表小元件。
  • diffstat通過從標準輸入讀取其輸入來處理失去的參數,但此外,它的-v(詳細)選項在執行此操作時會顯示進度,例如“。” 對於每個文件
  • 管道到 vi-like-emacs 使其將輸入作為文件讀取。vim 的類似功能(在 [稍後4中實現)使用顯式的“-”參數。

對於特殊參數:

  • 對話框有一個--gauge從標準輸入讀取數據的選項。還--input-fd告訴它使用哪個文件描述符作為管道的輸入。
  • lynx有一個選項-stdin告訴它將標準輸入解釋為 html。否則,它接受標準輸入上的配置選項,例如使用-get_dataor -post_data

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