Я пытаюсь заполнить глобальную переменную типа массива в сценарии оболочки bash. Я использовал подоболочку в функции, и теперь понимаю, что после выполнения кода все потеряно, а глобальный объявленный var не был установлен с новым значением. Теперь я пытаюсь использовать другой подход, но, похоже, не работает хорошо. Это код:Заполнение массива bash с доступными устройствами Android
declare -a arr
let i=1
function availableDevices {
while read line #get list of devices
do
if [ -n "$line" ] && [ "`echo $line | awk '{print $2}'`" == "device" ]
then
device="`echo $line | awk '{print $1}'`"
echo "Add $device"
arr[i]="$device"
let i=$i+1
fi
done < <(adb devices)
echo "devices: ${arr[*]}"
}
Когда я вызвать эту функцию появляется эта ошибка:
name.sh: cannot make pipe for process substitution: Function not implemented
Я новичок в написании сценариев и, вероятно, сам объяснительный, но я не понимаю. HOw может ли функция не быть реализована? Благодаря
_cannot сделать трубу для замены процесса:. Функция не implemented_ - Дает ли это намек Ваша оболочка не поддерживает '<(...)' синтаксис – devnull