Sto scrivendo un'applicazione da cui voglio eseguire un cercapersone specificato dall'utente. Il modo standard per farlo sembra essere guardare il PAGER
variabile di ambiente.
Non sono chiaro se questo sia un nome di programma o un nome di programma insieme ad argomenti. Ho cercato di trovare standard che menzionassero questo, ma non ci sono riuscito.
La mia sensazione istintiva è che dovrei dividere gli spazi ed eseguire. Ho ragione? Mi sono imbattuto in vari programmi che presuppongono variabili di ambiente come $PAGER
e $EDITOR
sono nomi di programmi senza variabili di ambiente.
Forse dovrei eseguire con sh
invece?
Link
- Questa domanda discute l'origine di varie variabili di ambiente comuni
Risposta accettata:
La mia sensazione istintiva è che dovrei dividere gli spazi ed eseguire.
Buon istinto. Stai chiamando direttore (3); sta a te come interpretare le variabili di ambiente che supporti. Supportando le opzioni, risparmi all'utente la fatica di scrivere uno script per riporlo in un unico nome $PAGER.
Un buon esempio da seguire potrebbe essere uomo (1). Sul mio sistema, supporta MANPAGER, che dice,
Se MANPAGER è impostato, il suo valore viene utilizzato come nome del programma
da utilizzare per visualizzare la pagina man. In caso contrario, viene utilizzato PAGER. Se
anche questo non ha valore, /usr/bin/less -is viene utilizzato.
Ciò almeno implica che PAGER può contenere opzioni. Potresti sperimentare con il tuo per vedere. Scommetto di sì.
Non credo che Posix affronti la questione di come vengono interpretate le variabili di ambiente che denotano le utilità. Penso che il meglio che hai siano esempi comuni di arte anteriore.
Per quanto riguarda se passarlo o meno attraverso "la" shell, direi di No, a meno che tu non voglia sfruttare l'espansione delle variabili della shell e documentarlo. È più semplice e prevedibile tenere fuori il guscio.