Parece que você deseja usar uma matriz:
read x
for (( a=0; a<x; ++a)); do
variable[a]=$RANDOM
done
printf 'First value is %s\n' "${variable[0]}"
printf 'All values (one by one): %s\n' "${variable[@]}"
printf 'All values (as one string): %s\n' "${variable[*]}"
Para a segunda parte da sua pergunta:
arg=( "$@" )
printf 'First command line argument: %s\n' "${arg[0]}"
Note também que você pode percorrer facilmente todos os argumentos de linha de comando (ou o que quer que esteja em $@
) sem armazená-los em qualquer lugar especial:
for arg do
printf 'Got command line argument: %s\n' "$arg"
done