Environment-Variables
$PAGER 可以包含空格嗎?
我正在編寫一個應用程序,我想從中執行使用者指定的尋呼機。執行此操作的標準方法似乎是查看
PAGER
環境變數。我不清楚這是程序名還是程序名和參數。我試圖找到提到這一點的標準,但找不到。
我的直覺是我應該在空間上分開並執行。我對麼?我遇到了各種假設環境變數的程序,例如
$PAGER
並且$EDITOR
是沒有環境變數的程序名稱。也許我應該改為執行
sh
?連結
我的直覺是我應該在空間上分開並執行。
良好的直覺。您正在呼叫exec (3); 如何解釋您支持的環境變數取決於您。通過支持選項,您可以省去使用者編寫腳本將它們塞入單個 $PAGER 名稱的麻煩。
一個很好的例子可能是man (1)。在我的系統上,它支持 MANPAGER,它說,
如果設置了 MANPAGER,則其值用作用於顯示手冊頁的程序的名稱。如果不是,則使用 PAGER。如果它也沒有值,則使用**/usr/bin/less -is**。
這至少意味著 PAGER 可以包含選項。你可以試試你的看看。我打賭確實如此。
我不認為 Posix 解決瞭如何解釋表示實用程序的環境變數的問題。我認為您擁有的最好的是現有技術的常見範例。
至於是否通過“the” shell 傳遞它,我會說不,除非你想利用 shell 變數擴展並記錄它。將外殼排除在外更簡單,更可預測。