GNU/Linux >> Linux Esercitazione >  >> Linux

$pager può contenere spazi?

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.


Linux
  1. Il tema del colore può legarsi a un buffer?

  2. Fare riferimento a variabili d'ambiente *in* /etc/environment?

  3. Come posso usare xargs per copiare file che hanno spazi e virgolette nei loro nomi?

  4. Dove posso impostare le variabili di ambiente che crontab utilizzerà?

  5. Controllo delle variabili di ambiente

Gli spazi/lo sfondo vuoti in un terminale possono essere sostituiti con uno schema casuale (ma carino) di caratteri Ascii?

Variabili d'ambiente Linux

C# in ambiente Linux

Posso eseguire uno script in una configurazione di esecuzione Eclipse?

Come posso modificare $ PATH su Linux?

Come posso monitorare il disco io?