# while read a b ; do echo $a $b ; done < `for i in \`cat users.txt\` ; do PHPVER=\`selectorctl --user-current --user=$i\` ; echo $i $PHPVER ; done | awk '{print $1, $2}' | sed 's/native/5.3/g'`
-bash: `for i in \`cat users.txt\` ; do PHPVER=\`selectorctl --user-current --user=$i\` ; echo $i $PHPVER ; done | awk '{print $1, $2}' | sed 's/native/5.3/g'`: ambiguous redirect
Если удалить время чтения заявления, выход:Использование «во время чтения» и «для г в» приводит к неоднозначной редиректа
# for i in `cat users.txt` ; do PHPVER=`selectorctl --user-current --user=$i` ; echo $i $PHPVER ; done | awk '{print $1, $2}' | sed 's/native/5.3/g'
user1 5.4
user2 5.4
user3 5.3
Так что мне нужно взять эти 2 колонки и поворот каждый в переменный таким образом, я могу затем запустить их в команде, как так:
# selectorctl --set-user-current=$b --user=$a
однако, когда я добавляю в то время как прочитал заявление, он бросает неоднозначный редирект
Прежде всего, используйте '$ (...)' Вместо backquotes ('\'.. \ ''). Это делает вложение гораздо проще - не нужно использовать что-то вроде '\\' ' – anishsane
& Your' <$ (for ...) 'должно быть изменено на' <<(для ...) ' – anishsane
Посмотрите на http : //www.shellcheck.net/ – anishsane