Novo

Argumentos da linha de comando no Ruby

Argumentos da linha de comando no Ruby

Muitos scripts Ruby não têm interfaces gráficas ou de texto. Eles simplesmente correm, fazem seu trabalho e depois saem. Para se comunicar com esses scripts para alterar seu comportamento, argumentos da linha de comando devem ser usados.

A linha de comando é o modo padrão de operação para comandos UNIX e, como o Ruby é amplamente utilizado em sistemas UNIX e similares a UNIX (como Linux e macOS), é bastante comum encontrar esse tipo de programa.

Como fornecer argumentos de linha de comando

Os argumentos do script Ruby são passados ​​para o programa Ruby pelo shell, o programa que aceita comandos (como o bash) no terminal.

Na linha de comando, qualquer texto após o nome do script é considerado um argumento da linha de comando. Separadas por espaços, cada palavra ou sequência será passada como um argumento separado para o programa Ruby.

O exemplo a seguir mostra a sintaxe correta a ser usada para iniciar o test.rb Script Ruby a partir de uma linha de comando com os argumentos test1 e test2.

$ ./test.rb test1 test2

Você pode encontrar uma situação em que precisa passar um argumento para um programa Ruby, mas há um espaço no comando. Parece impossível a princípio, já que o shell separa argumentos em espaços, mas há uma provisão para isso.

Quaisquer argumentos entre aspas duplas não serão separados. As aspas duplas são removidas pelo shell antes de passá-lo para o programa Ruby.

O exemplo a seguir passa um único argumento para o test.rb Script Ruby, test1 test2:

$ ./test.rb "test1 test2"

Como usar argumentos de linha de comando

Nos seus programas Ruby, você pode acessar qualquer argumento da linha de comando transmitido pelo shell com o comando ARGV variável especial. ARGV é uma variável Array que contém, como seqüências de caracteres, cada argumento passado pelo shell.

Este programa itera sobre o ARGV matriz e imprime seu conteúdo:

#! / usr / bin / env ruby ​​ARGV.each do | a | coloca "Argumento: # {a}" final

A seguir, um trecho de uma sessão do bash iniciando esse script (salvo como o arquivo test.rb) com vários argumentos:

$ ./test.rb test1 test2 "três quatro" Argumento: test1 Argumento: test2 Argumento: três quatro


Assista o vídeo: Aulas de Ruby #5 - Métodos e seus Argumentos (Janeiro 2022).