Como incluo comandos em uma instrução echo?

0

Muito simples, mas não encontrei uma pergunta aqui que fizesse exatamente isso.

Eu achei que isso funcionaria, mas não funciona.

echo "Your disk usage is ${df -k -h}."

Como faço o trabalho acima?

    
por David Prentice 28.11.2015 / 04:50

2 respostas

0

Use $() , não ${}

echo "Your disk usage is $(df -h)."

Observe que df -h tem saída de várias linhas (uma linha para o cabeçalho e uma para cada sistema de arquivos montado), então incluí-lo em uma instrução echo parece bastante feio.

Você pode contornar isso sendo mais específico sobre o que deseja exibir (por exemplo, somente uso de disco para o fs que contém seu diretório inicial) e extrair apenas os detalhes que deseja imprimir. Por exemplo:

printf 'Your disk usage on %s is %s\n' $(df -h ~ | awk 'NR==2 {print $6, $3}') 
    
por 28.11.2015 / 04:53
0

em ksh você precisa:

echo "... ${df -k -h;}"

Se você quiser mostrar um percentual de uso para o sistema de arquivos no qual o diretório atual está enraizado e se você estiver usando um sistema linux com um pacote util-linux atualizado instalado, você deve fazer:

printf "Your disk usage is:\t"
(until findmnt -noTARGET,USE% .;do cd ..; done)
    
por 28.11.2015 / 04:55

Tags