Enlaces

Enlaces

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

No tengo claro si se trata del nombre de un programa o de un nombre de programa junto con argumentos. Intenté encontrar estándares que mencionaran esto, pero no pude.

Mi intuición 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 $PAGERy $EDITORson nombres de programas sin variables de entorno.

¿Quizás debería ejecutar con shen su lugar?

Enlaces

Respuesta1

Mi intuición es que debería dividirme en espacios y ejecutar.

Buenos instintos. estas llamandoejecutivo(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 $PAGER.

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

Si se establece MANPAGER, su valor se utiliza como el nombre del programa que se utilizará para mostrar la página de manual. En caso contrario, se utiliza PAGER. Si eso tampoco tiene valor,/usr/bin/menos -esse utiliza.

Eso al menos implica que PAGER puede contener opciones. Podrías experimentar con el tuyo para ver. Apuesto 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 del shell y documentarlo. Es más simple y predecible mantener el caparazón fuera.

información relacionada