Environment-Variables

$PAGER 可以包含空格嗎?

  • November 29, 2017

我正在編寫一個應用程序,我想從中執行使用者指定的尋呼機。執行此操作的標準方法似乎是查看 PAGER環境變數。

我不清楚這是程序名還是程序名和參數。我試圖找到提到這一點的標準,但找不到。

我的直覺是我應該在空間上分開並執行。我對麼?我遇到了各種假設環境變數的程序,例如$PAGER並且$EDITOR是沒有環境變數的程序名稱。

也許我應該改為執行sh

連結

我的直覺是我應該在空間上分開並執行。

良好的直覺。您正在呼叫exec (3); 如何解釋您支持的環境變數取決於您。通過支持選項,您可以省去使用者編寫腳本將它們塞入單個 $PAGER 名稱的麻煩。

一個很好的例子可能是man (1)。在我的系統上,它支持 MANPAGER,它說,

如果設置了 MANPAGER,則其值用作用於顯示手冊頁的程序的名稱。如果不是,則使用 PAGER。如果它也沒有值,則使用**/usr/bin/less -is**。

這至少意味著 PAGER 可以包含選項。你可以試試你的看看。我打賭確實如此。

我不認為 Posix 解決瞭如何解釋表示實用程序的環境變數的問題。我認為您擁有的最好的是現有技術的常見範例。

至於是否通過“the” shell 傳遞它,我會說不,除非你想利用 shell 變數擴展並記錄它。將外殼排除在外更簡單,更可預測。

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