GNU/Linux >> Znalost Linux >  >> Linux

Může $pager obsahovat mezery?

Píšu aplikaci, ze které chci spouštět uživatelsky zadaný pager. Zdá se, že standardním způsobem, jak toho dosáhnout, je podívat se na PAGER proměnná prostředí.

Není mi jasné, zda se jedná o název programu nebo název programu spolu s argumenty. Snažil jsem se najít normy, které to zmiňují, ale nepodařilo se to.

Můj vnitřní pocit je, že bych se měl rozdělit na mezery a provést. Mám pravdu? Narazil jsem na různé programy, které předpokládají proměnné prostředí jako $PAGER a $EDITOR jsou názvy programů bez proměnných prostředí.

Možná bych měl spustit pomocí sh místo toho?

Odkazy

  • Tato otázka pojednává o zdroji různých běžných proměnných prostředí

Přijatá odpověď:

Můj vnitřní pocit je, že bych se měl rozdělit na mezery a provést.

Dobré instinkty. Voláte exec (3); je na vás, jak interpretovat proměnné prostředí, které podporujete. Díky podpoře voleb ušetříte uživateli námahu s psaním skriptu, který je vloží do jediného názvu $PAGER.

Dobrým příkladem k následování může být člověk (1). V mém systému podporuje MANPAGER, což říká,

Pokud je nastaven MANPAGER, jeho hodnota se použije jako název programu
, který se použije k zobrazení manuálové stránky. Pokud ne, použije se PAGER. Pokud
ani toto nemá žádnou hodnotu, /usr/bin/less -is se používá.

To přinejmenším znamená, že PAGER může obsahovat volby. Můžete experimentovat s tím svým, abyste viděli. Vsadím se, že ano.

Nemyslím si, že Posix řeší otázku, jak jsou interpretovány proměnné prostředí, které označují nástroje. Myslím, že to nejlepší, co máte, jsou běžné příklady předchozího umění.

Pokud jde o to, zda to předat „the“ shellem, nebo ne, řekl bych Ne, pokud nechcete využít výhody expanze proměnné shellu a zdokumentovat to. Je jednodušší a předvídatelnější, aby se do toho nedostalo.


Linux
  1. Může se barevný motiv vázat na vyrovnávací paměť?

  2. C# v prostředí linuxu

  3. Kde mohu nastavit proměnné prostředí, které bude crontab používat?

  1. Kontrola proměnných prostředí

  2. Lze ',,' přiřadit k '..'?

  3. Časová synchronizace v heterogenním prostředí

  1. Odkazování na proměnné prostředí *v* /etc/environment?

  2. Prostředí hackování jádra

  3. Jak mohu uvést uživatelské skupiny, když jejich jména obsahují mezery?