msoliver
(usa Debian)
Enviado em 14/04/2020 - 01:10h
cesarzz escreveu:
msoliver escreveu:
cesarzz escreveu:
Olá.
Como faço para carregar um vetor no bash utilizando a saída de um comando pra criar os índices do vetor?
Por exemplo, pegar a saída do ls *.txt e colocar num array.
Cesar
Boa noite Cesar.
Segue:
ARRAY_ARQ=($(ls -1))
echo ${ARRAY_ARQ[@]}
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________
Muito obrigado.
Poderia de explicar a diferença da forma abaixo (vi num post antigo) ?
Eu não entendo o porquê do seguinte:
array=( ${array[@]} `cat arquivo.txt` )
Essa parte do código acima, e logo depois o comando. Pra que serve esta forma?
#!/bin/bash
array=( ${array[@]} `cat arquivo.txt` )
for palavra in ${array[@]}; do
echo $palavra
done
Cesar, não entendi a razão de ${array[@]} , no comando:
array=( ${array[@]} `cat arquivo.txt` )
array=(`cat arquivo.txt` )
Tem o mesmo efeito.
É dado um cat no arquivo.txt,
note que o cat arquivo.txt, estra entre ' '
é o resultado é atribuído para a var array, do tipo "array",
Pois está entre parêntesis.
O segundo comando:
for palavra in ${array[@]}; do
echo $palavra
done
Pega cada elemento do ${array[@]}, atribui para a var palavra e mostra na tela.
o mesmo resultado é obtido com:
printf "%s\n" ${array[@]}
Uma outra forma, é:
for arq in *;do ARRAY_ARQ+=("$arq");done
printf "%s\n" "${ARRAY_ARQ[@]}"
Área de trabalho
arqui.txt
Documentos
Downloads
Imagens
matematica.sh
matematica.sh~
Modelos
Música
Público
Vídeos
Existe a opção de gerar usando o índice:
array[0]=Viva
array[1]=o
array[2]=Linux
echo ${array[*]}
Viva o Linux
E ainda ...
IFS='.' read -a ipv4 <<< "127.0.0.1"
A diferença entre uma variável comum e um array,
Está em colocar entre ( ) ou, atribuir o índice.
exemplo:
var=(1 2 3 4 5 6) # é do tipo array com 5 elementos
var="1 2 3 4 5 6" # é uma variável comum
É isso....
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________