Bash

Alexander Smirnov alexander.v.smirnov на gmail.com
Ср Окт 28 13:58:49 GMT 2009


Катраев Виталий пишет:
> 28 октября 2009 г. 16:24 пользователь Vyacheslav Karamov
> <ubuntulist на yandex.ru> написал:
>   
>> #!/bin/bash
>> unset var1 var2 i
>> declare -a arr1
>> declare -a arr2
>> cat $1 | while read -e var1 var2
>> do
>>   arr1[i]   = var1;
>>   arr2[i++] = var2;
>> done
>>     
>
> Неа, переменные внутри цикла отдельные в этом случае, надо не через |,
> а через < делать.
>
> #!/bin/bash
> TMP_FILE="/tmp/XXX_$RANDOM"
> curl server.com/file.txt > $TMP_FILE
> array1=()
> array2=()
> while read -e var1 var2
> do
>     array1=(${array1[@]} $var1)
>     array2=(${array2[@]} $var2)
> done < $TMP_FILE
> rm $TMP_FILE
> echo ${array1[@]}
> echo ${array2[@]}
>
>
>   

для временных файлов использовать mktemp
и вот чё-т мне не нравится инициализация массива в цикле. Каждый проход 
создается новый массив... Как-то это некрасиво



Подробная информация о списке рассылки ubuntu-ru