
SSH의 표준 출력이 무엇인지 알고 싶을 때 우리는 이렇게 합니다.
ssh $linux_server "cat /proc/uptime"
[[ $? -eq 0 ]] && ssh is ok
하지만 다음과 같은 경우 SSH 표준 출력을 어떻게 알 수 있습니까?
UPTIME=` ssh $linux_server "cat /proc/uptime" `
답변1
대부분의 쉘(따라서 가장 이식성이 뛰어남)에서 이를 수행하는 표준 방법은 역따옴표(`)를 사용하는 것이며 ssh에 필요한 인수에는 인용이 필요하지 않지만 결과는 아마도 다음과 같이 작성할 것입니다.
UPTIME="`ssh $linux_server cat /proc/uptime`"
또는 다음과 같이 $() 를 사용하여 bash(및 몇 가지 다른 쉘에 특정할 수 있지만 역따옴표만큼 보편적이지는 않음):
UPTIME="$(ssh $linux_server cat /proc/uptime$)"
역따옴표는 명령을 구분하기 위해 동일한 것을 사용하므로 중첩될 수 없습니다. 이것이 bash 구성의 장점 중 하나입니다. 또한 좀 더 효율적인 실행을 위해 하위 셸을 분기할 필요가 없습니다.
자세한 내용은 bash 매뉴얼 페이지를 읽어보세요.