출력 명령을 변수에 저장하고 파이프 후 다음 명령에서 해당 변수를 다시 사용하는 방법

출력 명령을 변수에 저장하고 파이프 후 다음 명령에서 해당 변수를 다시 사용하는 방법

출력 명령을 변수에 저장하고 파이프 뒤의 다음 명령에서 해당 변수를 어떻게 다시 사용할 수 있습니까?

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

$input명령을 출력하고 명령에서 다시 사용하는 것입니다 lsblk | awk {'print $1'} | grep ^sd.$inputparted

답변1

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[a-z]
if (($# > 0 )); then
  parted "$1" mklabel gpt mkpart primary "1 -1" -s
fi

또는 각 디스크에 대해 다음을 수행합니다.

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

답변2

변수에 저장하고 처리하면 됩니다.

input=$(lsblk | awk {'print $1'} | grep ^sd); \
parted $input mklabel gpt mkpart primary "1 -1" -s

관련 정보