Ir al contenido principal

Si has usado el shell POSIX ("bash") en VOS, entonces sabes que puedes ejecutar varios comandos POSIX y usar todos los ingeniosos trucos que proporciona el bash, como la redirección de entrada y salida. ¿Pero sabías que puedes usar estas mismas características con muchos comandos de VOS?

Por ejemplo, si desea combinar el comando "lista" de VOS con el comando "más" de POSIX, escriba la siguiente línea de comando en bash:

lista | más

Si quieres ejecutar la salida del comando de la lista en un archivo, digamos:

lista >lista.txt

Esto funciona porque tanto VOS como POSIX usan el mismo puerto VOS subyacente para escribir la salida en la terminal o el archivo por lotes. El puerto VOS "default_output" es equivalente al archivo POSIX "stdout". Y el puerto VOS "default_input" es el mismo que el archivo POSIX "stdin". Finalmente, el puerto VOS "terminal_output", que es donde VOS escribe sus mensajes de error, es el mismo que el archivo POSIX "stderr".

Aquí hay un ejemplo (inventado) de usar la redirección de la entrada de bash en un comando VOS. Crea un archivo llamado "line_edit.txt" con las siguientes 2 líneas en él:

imprimir *
Deje

A continuación, puede ejecutar estas solicitudes de line_edit contra su archivo de abreviaturas de la siguiente manera:

line_edit abbreviations <line_edit.txt

Tengan en cuenta que Bash ejecuta cada comando en un nuevo proceso hijo. El proceso hijo hereda todos los adjuntos de E/S y todos los estados del proceso padre, así que esto no es un problema para la mayoría de los comandos. Sin embargo, cualquier comando VOS que modifique el entorno del proceso no hará lo que usted espera. Por ejemplo, ejecutar el comando set_library_paths desde dentro de bash cambiará las rutas de biblioteca del proceso hijo; y este proceso se destruye tan pronto como el comando termina. Si desea cambiar las rutas que se buscan con bash, debe hacer el cambio usando el método POSIX, que consiste en cambiar la variable de entorno PATH.

Espero que estas técnicas le sean útiles.