como obter a saída padrão do comando na variável

0

quando queremos saber qual é a saída padrão do ssh, então fazemos

ssh  $linux_server "cat /proc/uptime"

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

mas como saber a saída padrão ssh no caso do seguinte?

 UPTIME='    ssh $linux_server "cat /proc/uptime"  '
    
por yael 26.06.2016 / 21:16

1 resposta

1

A maneira padrão de fazer isso com a maioria das shells (e, portanto, mais portável) é com backquote (') e já que o arg que você tem para ssh não precisa de citação, mas o resultado provavelmente você escreveria:

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

ou você pode ser específico para bash (e alguns outros shells, mas não tão universal quanto backquote) usando o $ () como:

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

Observe que, como os backquotes usam a mesma coisa para delimitar o comando, eles não podem ser aninhados. Essa é uma das vantagens da construção bash. Ele também não requer o bifurcação de uma sub-shell para execução um pouco mais eficiente.

Leia a página man bash para mais detalhes.

    
por 26.06.2016 / 21:39