GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puede $pager contener espacios?

Estoy escribiendo una aplicación desde la que quiero ejecutar un buscapersonas especificado por el usuario. La forma estándar de hacer esto parece ser mirar el PAGER variable de entorno.

No tengo claro si este es un nombre de programa o un nombre de programa junto con argumentos. Traté de encontrar estándares que mencionaran esto, pero no pude.

Mi instinto es que debería dividirme en espacios y ejecutar. ¿Estoy en lo correcto? Me he encontrado con varios programas que asumen variables de entorno como $PAGER y $EDITOR son nombres de programa sin variables de entorno.

Tal vez debería ejecutar con sh en cambio, sin embargo?

Enlaces

  • Esta pregunta analiza el origen de varias variables de entorno comunes

Respuesta aceptada:

Mi intuición es que debería dividir los espacios y ejecutar.

Buenos instintos. Estás llamando al ejecutivo (3); depende de usted cómo interpretar las variables de entorno que admite. Al admitir opciones, le ahorra al usuario la molestia de escribir un script para incluirlas en un solo nombre de $PAGER.

Un buen ejemplo a seguir podría ser hombre (1). En mi sistema, es compatible con MANPAGER, que dice:

Si se establece MANPAGER, su valor se usa como el nombre del programa
para usar para mostrar la página del manual. Si no, entonces se usa PAGER. Si
eso tampoco tiene valor, /usr/bin/less -is se utiliza.

Eso al menos implica que PAGER puede contener opciones. Podrías experimentar con el tuyo para ver. Apuesto a que sí.

No creo que Posix aborde la cuestión de cómo se interpretan las variables de entorno que denotan utilidades. Creo que lo mejor que tienes son ejemplos comunes del estado de la técnica.

En cuanto a si pasarlo o no a través de "el" shell, diría que no, a menos que desee aprovechar la expansión de variables de shell y documentarlo. Es más simple y más predecible mantener el caparazón al margen.


Linux
  1. C# en entorno linux

  2. ¿Dónde puedo configurar las variables de entorno que usará crontab?

  3. Comprobación de variables de entorno

  4. ¿Podemos usar código C en Python?

  5. ¿Cómo puede un programa C sondear la entrada del usuario mientras realiza simultáneamente otras acciones en un entorno Linux?

¿Se pueden reemplazar los espacios vacíos/fondo en una terminal con un patrón aleatorio (pero bonito) de caracteres ASCII?

Variables de entorno de Linux

¿Puedo ejecutar un script en una configuración de ejecución de Eclipse?

Entorno de piratería del kernel

¿Cómo puedo monitorear el disco io?

¿Cómo puedo enumerar los grupos de un usuario cuando sus nombres contienen espacios?