Parece que você precisa de bash arrays
Para o seu propósito, você pode escrever um script como
#!/bin/bash
i=0
while read a[$i] b[$i]; do
echo ${a[$i]} # Print the current one a
echo ${b[$i]} # Print the current one b
i=$[ i+1 ] # Increment i
done < filename.txt
# do other stuffs... # if you want
echo "$[ $i -1 ] Items read " # The number of lines read
echo The second a was ${a[1]} # Array starts from 0
echo Those are all b ${b[*]} # You can print all together
- Depende do que você quer dizer com
global. Infelizmente você não pode simplesmenteexportdeles fora do seu script. A partir doman bashonbash 4.3.11(1)-releasevocê pode ler.Array variables may not (yet) be exported.
- Dentro do seu script você pode usar o array como variável normal. Em vez de
echo $a, você deve se referir a eles com algo comoecho ${a[0]}ouecho ${b[2]}...
Note que você precisa colocar{}para protegê-los.