cómo obtener la salida estándar del comando en variable

cómo obtener la salida estándar del comando en variable

cuando queremos saber cuál es la salida estándar de ssh entonces lo hacemos

ssh  $linux_server "cat /proc/uptime"

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

pero ¿cómo saber la salida estándar ssh en el siguiente caso?

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

Respuesta1

La forma estándar de hacer esto con la mayoría de los shells (y por lo tanto con los más portátiles) es con comillas invertidas (`) y dado que el argumento que tienes que usar ssh no necesita comillas, pero el resultado probablemente escribirías:

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

o puedes ser específico de bash (y algunos otros shells, pero no tan universales como backquote) usando $() como:

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

Tenga en cuenta que, dado que las comillas inversas utilizan lo mismo para delimitar el comando, no se pueden anidar. Esa es una de las ventajas de la construcción bash. Tampoco requiere bifurcar un subnivel para una ejecución ligeramente más eficiente.

Lea la página de manual de bash para obtener más detalles.

información relacionada