Первое решение не имеет смысла, потому что вы устанавливаете переменную awk
с именем array
, а не переменную bash с таким именем.
Проблема со вторым решением состоит в том, что вы устанавливаетепеременная bash
array
внутри трубы.Сравните это с этой программой:
echo abc | x=( $(cat) )
И здесь x будет пустым.Принимающий конец канала является дочерним процессом, и x будет установлен в этом дочернем процессе.
Для достижения цели используйте
array=( $(/bin/clido $CMD 2> /dev/null | awk -v i="$C" '{print $3}') )