Bash: Como faço uma linha de comando chamar um script e passar duas strings?

1

Eu tenho um script simples chamado text.sh , que é assim:

#!/bin/bash
read username
read password
echo "script attempted with $username $password"

Eu quero chamá-lo usando algo assim:

[[email protected] root]# ./test.sh bing s3cr3t

E repita:

script attempted with bing s3cr3t

Eu posso usar <<< para obter bing para imprimir, mas não ambos. Tenho certeza que isso é simples, mas o meu Google-fu está falhando desde que eu não sei o que palavras-chave para procurar.

    
por Bing 12.11.2015 / 19:37

1 resposta

2

O que você quer é acessar os argumentos da linha de comando, não ler da entrada padrão. Um script com o método adequado:

#!/bin/bash
username="$1"
password="$2"
echo "script attempted with $username $password"

As variáveis especiais $1 , $2 & c. contém o primeiro, segundo & c. argumentos transmitidos na linha de comando em execução. Mais informações disponíveis aqui , entre muitos outros lugares.

    
por 12.11.2015 / 19:39