use -a, -p no comando de leitura juntos

use -a, -p no comando de leitura juntos

No script bash podemos ler algumas variáveis ​​​​de array da mesma linha

Como posso usar -a& -pao mesmo tempo no comando de leitura?

Eu tentei:

read -ap 'vi:' var_1
read -pa 'vi:' var_1
read -a -p 'v1:' var_1
read -p -a 'v1:' var_1

Nenhum dos quais está funcionando. Existem outras opções?

Responder1

Você pode anexar strings de entrada a um array com um loop.

#!/bin/bash

array=()
while true; do
    read -rp "vi: " input
    [[ -z $input ]] && break || array+=("$input")
done

echo "${array[@]}"

Responder2

Seu método funciona bashcom uma pequena modificação:

Limpe a variável

$ unset asdf

Coloque a opção -adepois da opção-p 'string'

$ read -p 'enter 4 items separated by space ' -a asdf
enter 4 items separated by space  1 2 3 4

Verifique o resultado

$ echo ${asdf[@]}
1 2 3 4
$ echo ${asdf[3]}
4
$ echo ${asdf[0]}
1

informação relacionada