Как сохранить выходную команду в переменной и снова использовать эту переменную для следующей команды после канала

Как сохранить выходную команду в переменной и использовать эту переменную снова для следующей команды после канала?

lsblk | awk {'print $1'} | grep ^sd | parted $input mklable gpt mkpart primary "1 -1" -s 

$input выводится lsblk | awk {'print $1'} | grep ^sd lsblk | awk {'print $1'} | grep ^sd lsblk | awk {'print $1'} | grep ^sd и снова используйте $input в команде parted .

 dev=$(lsblk | awk '$1 ~ /^sd/ {print $1; exit}') if [ -n "$dev" ]; then dev=/dev/$dev parted "$dev" mklabel gpt mkpart primary "1 -1" -s fi 

Теперь, если вы хотите первый sd? диск, это может быть проще сделать:

 shopt -s nullglob; set -- /dev/sd[az] if (($# > 0 )); then parted "$1" mklabel gpt mkpart primary "1 -1" -s fi 

Или сделать это для каждого диска:

 shopt -s nullglob for dev in /dev/sd[az]; do (set -x; parted "$dev" mklabel gpt mkpart primary "1 -1" -s) done 

Просто сохраните переменную и обработайте ее.

 input=`lsblk | awk {'print $1'} | grep ^sd` ; parted $input mklable gpt mkpart primary "1 -1" -s