Guia rápido para argumentos de linha de comando no Ruby

Muitos Rubi scripts não têm texto ou interfaces gráficas. 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 usado em Sistemas UNIX e UNIX-like (como Linux e macOS), é bastante padrão 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 apropriada 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
instagram viewer

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 ARGVmatriz e imprime seu conteúdo:

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

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
instagram story viewer