連結

連結

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

我不清楚這是一個程式名稱還是一個帶有參數的程式名稱。我試圖找到提到這一點的標準,但找不到。

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

也許我應該執行 with sh

連結

答案1

我的直覺是我應該劃分空間並執行。

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

一個值得效法的好例子可能是男人(1).在我的系統上,它支援 MANPAGER,它表示:

如果設定了 MANPAGER,則其值將用作用於顯示手冊頁的程式的名稱。如果沒有,則使用 PAGER。如果這也沒有價值,/usr/bin/less -is用來。

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

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

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

相關內容