출력 명령을 변수에 저장하고 파이프 뒤의 다음 명령에서 해당 변수를 어떻게 다시 사용할 수 있습니까?
lsblk | awk {'print $1'} | grep ^sd | parted $input mklable gpt mkpart primary "1 -1" -s
$input
명령을 출력하고 명령에서 다시 사용하는 것입니다 lsblk | awk {'print $1'} | grep ^sd
.$input
parted
답변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