변수의 명령에서 표준 출력을 얻는 방법

변수의 명령에서 표준 출력을 얻는 방법

ssh의 표준 출력이 무엇인지 알고 싶을 때 다음을 수행합니다.

ssh  $linux_server "cat /proc/uptime"

[[ $? -eq 0 ]] && ssh is ok

그러나 다음 경우에 ssh 표준 출력을 어떻게 알 수 있습니까?

 UPTIME=`    ssh $linux_server "cat /proc/uptime"  `

답변1

대부분의 셸(따라서 가장 이식성이 높은)에서 이 작업을 수행하는 표준 방법은 백틱(`)을 사용하는 것이며 ssh를 수행해야 arg에 따옴표가 필요하지 않지만 결과적으로 다음과 같이 작성할 수 있습니다.

UPTIME="`ssh $linux_server cat /proc/uptime`"

또는 $()를 사용하여 bash(및 백틱만큼 보편적이지는 않지만 다른 쉘)에만 특정하게 만들 수 있습니다.

UPTIME="$(ssh $linux_server cat /proc/uptime$)"

백틱은 동일한 것을 사용하여 명령을 구분하므로 중첩될 수 없습니다. 이것이 bash 구조의 장점 중 하나입니다. 또한 실행 효율성을 약간 향상시키기 위해 서브셸을 분기할 필요가 없습니다.

자세한 내용은 bash 매뉴얼 페이지를 읽어보세요.

관련 정보