use -a, -p en el comando de lectura juntos

use -a, -p en el comando de lectura juntos

En el script bash podemos leer algunas variables de matriz de la misma línea

¿Cómo puedo usar -a& -pal mismo tiempo en el comando de lectura?

Yo he tratado:

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

Ninguno de los cuales está funcionando. ¿Hay otras opciones?

Respuesta1

Puede agregar cadenas de entrada a una matriz con un bucle.

#!/bin/bash

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

echo "${array[@]}"

Respuesta2

Su método funciona bashcon una pequeña modificación:

Borrar la variable

$ unset asdf

Pon la opción -adespués de la opción.-p 'string'

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

Comprueba el resultado

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

información relacionada