원격 컴퓨터에서 sdb 크기의 크기를 얻으려는 경우 - 마스터
알겠어요:
# ssh master "lsblk | grep \"^sdb\" | awk '{print \$4}' "
100G
하지만
변수에 크기 값을 설정하고 인쇄하려고 하면 다음과 같은 결과를 얻습니다.
# VAR=` ssh master "lsblk | grep \"^sdb\" | awk '{print \$4}' " `
# echo $VAR
sdb 8:16 0 100G 0 disk
왜 최종 테스트에서는 100G 크기만 제공되지 않습니까?
여기서 무슨 차이가 있어?
답변1
로컬에서 실행할 수 있는 작업을 원격으로 실행하지 마세요.
var=$( ssh master lsblk | awk '/^sdb/ { print $4 }' )
값이 sdb
변수에 있는 경우(아래 설명 참조):
var=$( ssh master lsblk | awk -v disk="$variable" '$0 ~ disk { print $4 }' )
또는 줄 시작 부분에서 강제로 일치시키려면
var=$( ssh master lsblk | awk -v disk="$variable" '$0 ~ "^" disk { print $4 }' )
답변2
또 다른 백슬래시를 추가해야 합니다.
VAR=` ssh master "lsblk | grep \"^sdb\" | awk '{print \\$4}' " `
echo $VAR
100G