<Anterior | Conteúdo | Próxima>
Opções
read suporta as seguintes opções:
Tabela 28-1: Opções de leitura
Descrição da Opção
Descrição da Opção
-a ordem Atribuir a entrada para ordem, começando com o índice zero. Nós
abordará matrizes no Capítulo 35.
-d delimitador O primeiro caractere da string delimitador é usado para
indicam o fim da entrada, em vez de um caractere de nova linha.
-e Use Readline para lidar com a entrada. Isso permite a edição de entrada da mesma maneira que a linha de comando.
-i corda Uso corda como uma resposta padrão se o usuário simplesmente pressionar
Digitar. Requer o -e opção.
-n Números Ler Números caracteres de entrada, em vez de uma linha inteira.
-p pronto Exibe um prompt para entrada usando a string pronto.
-r modo Raw. Não interprete os caracteres de barra invertida como escapes.
-s Modo silencioso. Não faça eco de caracteres no visor à medida que são digitados. Isso é útil ao inserir senhas e outras informações confidenciais.
-t segundo Tempo esgotado. Encerrar entrada após segundo. ler retorna um
status de saída diferente de zero se uma entrada atingir o tempo limite.
-u fd Use a entrada do descritor de arquivo fd, em vez de entrada padrão.
Usando as várias opções, podemos fazer coisas interessantes com ler. Por exemplo, com o
opção -p, podemos fornecer uma string de prompt:
#! / Bin / bash
# read-single: lê vários valores na variável padrão read -p "Insira um ou mais valores>"
echo "REPLY = '$ REPLY'"
#! / Bin / bash
# read-single: lê vários valores na variável padrão read -p "Insira um ou mais valores>"
echo "REPLY = '$ REPLY'"
Com o -t e -s opções, podemos escrever um script que lê a entrada “secreta” e atinge o tempo limite se a entrada não for concluída em um tempo especificado:
#! / Bin / bash
# read-secret: insira uma senha secreta
if read -t 10 -sp "Digite a senha secreta>" secret_pass; então echo -e "\ nSecret passphrase = '$ secret_pass'"
outro
echo -e "\ n Tempo limite de entrada esgotado"> & 2 saída 1
fi
#! / Bin / bash
# read-secret: insira uma senha secreta
if read -t 10 -sp "Digite a senha secreta>" secret_pass; então echo -e "\ nSecret passphrase = '$ secret_pass'"
outro
echo -e "\ n Tempo limite de entrada esgotado"> & 2 saída 1
fi
O script solicita ao usuário uma senha secreta e aguarda 10 segundos pela entrada. Se a entrada não for concluída dentro do tempo especificado, o script sai com um erro. Desde o
A opção -s está incluída, os caracteres da frase secreta não são ecoados no visor à medida que são digitados.
É possível fornecer ao usuário uma resposta padrão usando o -e e -i opções juntas:
#! / Bin / bash
# read-default: forneça um valor padrão se o usuário pressionar a tecla Enter. leia -e -p "Qual é o seu nome de usuário?" -i $ USER
echo "Você respondeu: '$ REPLY'"
#! / Bin / bash
# read-default: forneça um valor padrão se o usuário pressionar a tecla Enter. leia -e -p "Qual é o seu nome de usuário?" -i $ USER
echo "Você respondeu: '$ REPLY'"
Neste script, pedimos ao usuário para inserir seu nome de usuário e usar a variável de ambiente USUÁRIO para fornecer um valor padrão. Quando o script é executado, ele exibe a string padrão e se o usuário simplesmente pressiona a tecla Enter, ler irá atribuir a string padrão para o RESPOSTA variável.
[me @ linuxbox ~] $ padrão de leitura Qual é o seu nome de usuário? eu Você respondeu: 'eu'
[me @ linuxbox ~] $ padrão de leitura Qual é o seu nome de usuário? eu Você respondeu: 'eu'