Se você já usou o shell POSIX (“bash”) no VOS, sabe que é possível executar vários comandos POSIX e usar todos os truques interessantes que o bash oferece, como redirecionamento de entrada e saída. Mas você sabia que pode usar esses mesmos recursos com muitos comandos VOS?
Por exemplo, se você deseja combinar o comando “list” do VOS com o comando “more” do POSIX, digite a seguinte linha de comando no bash:
lista | mais
Se você deseja executar a saída do comando list em um arquivo, digite:
lista >lista.txt
Isso funciona porque tanto o VOS quanto o POSIX usam a mesma porta VOS subjacente para gravar a saída no terminal ou no arquivo em lote. A porta “default_output” do VOS é equivalente ao arquivo “stdout” do POSIX. E a porta “default_input” do VOS é igual ao arquivo “stdin” do POSIX. Por fim, a porta “terminal_output” do VOS, que é onde o VOS grava mensagens de erro, é igual ao arquivo “stderr” do POSIX.
Aqui está um exemplo (artificial) do uso do redirecionamento de entrada do bash em um comando VOS. Crie um arquivo chamado “line_edit.txt” com as duas linhas a seguir:
imprimir * sair
Você pode então executar essas solicitações line_edit em seu arquivo de abreviações da seguinte maneira:
line_edit abbreviations <line_edit.txt
Observe que o bash executa todos os comandos em um novo processo filho. O processo filho herda todos os anexos de E/S e todos os estados do processo pai, portanto, isso não é um problema para a maioria dos comandos. No entanto, qualquer comando VOS que modifique o ambiente do processo não fará o que você espera. Por exemplo, executar o comando set_library_paths a partir do bash alterará os caminhos da biblioteca do processo filho; e esse processo é destruído assim que o comando é encerrado. Se você deseja alterar os caminhos pesquisados pelo bash, deve fazer a alteração usando o método POSIX, que consiste em alterar a variável de ambiente PATH.
Espero que essas técnicas sejam úteis para você.
