Exemplo simples:
-
Selecione o script:
#!/bin/bash array=() while IFS= read -r line || [[ -n "$line" ]] do if [ ! -z "$line" ]; then array+=("$line") fi done < "$1" select fname in "${array[@]}"; do /bin/bash -c "$fname" break; done
Operação de script:
-
while loop: tome comandos para criar umarraychamadoarray, então - Leia os comandos da matriz e crie um
menude sua escolha.
Informação:
-
IFS=''(ouIFS=) impede que o espaço em branco inicial / final seja aparado. -
-rimpede que as falhas de barra invertida sejam interpretadas. -
|| [[ -n $line ]]impede que a última linha seja ignorada se não terminar com\n(pois read retorna um código de saída diferente de zero quando encontra EOF). -
[ ! -z "$line" ]ignora linhas em branco no arquivo de origem. -
${array[@]}valores da matriz