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 umarray
chamadoarray
, então - Leia os comandos da matriz e crie um
menu
de sua escolha.
Informação:
-
IFS=''
(ouIFS=
) impede que o espaço em branco inicial / final seja aparado. -
-r
impede 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