Estou criando um script que solicitará que um usuário insira um local de um arquivo de texto e, com base nele, criará uma matriz.
Primeira pergunta
O arquivo de texto que estou usando é sample.txt
e está localizado no ~/Desktop/
, mas não está enviando todos os dados para o output.txt
Primeiro script
INDEX=0
echo -n "Enter a name for the array: "
read NAME
while read LINE
do
echo $NAME[$INDEX]="\"$LINE"\" >> output.txt
INDEX=$[$INDEX+1]
done < ~/Desktop/sample.txt
exemplo.txt
1
2
3
4
5
6
7
8
9
Saída real de saída.txt
NUM[0]="1"
NUM[1]="2"
NUM[2]="3"
NUM[3]="4"
NUM[4]="5"
NUM[5]="6"
NUM[6]="7"
NUM[7]="8"
Saída de saída esperada.txt
NUM[0]="1"
NUM[1]="2"
NUM[2]="3"
NUM[3]="4"
NUM[4]="5"
NUM[5]="6"
NUM[6]="7"
NUM[7]="8"
NUM[8]="9"
Segunda pergunta
Eu queria melhorar o script solicitando que o usuário insira o nome da matriz, o local do arquivo de texto a ser importado e também a localização de onde deseja que o arquivo de texto de saída seja enviado. No entanto, não está gostando da parte "$ {IMPORT}} e está dizendo;
./ArrayExport.sh: line 11: ~/Desktop/sample.txt: No such file or directory
Mas esse arquivo existe, no entanto, se eu inserir manualmente o local do arquivo na seção "${IMPORT}"
, ele funcionará bem.
Script final do ArrayCreator.sh
INDEX=0
echo -n "Enter a name for the array: "
read $NAME
read -e -p "Enter the location of the text file: " IMPORT
read -e -p "Enter a name for the output including the extension: " EXPORT
while read LINE
do
echo $NAME[$INDEX]="\"$LINE"\" >> $EXPORT
INDEX=$[$INDEX+1]
done < "${IMPORT}"
Espero que isso faça sentido, desculpe por fazer duas perguntas em um post: / mas espero que vocês possam ajudar, obrigado antecipadamente:)