Se sua unidade Linux é um SSD ou HDD

2

Então, estou aqui tentando descobrir uma maneira de fazer esse script funcionar corretamente.

O comando cat deve me dar 1 ou 0.

if [cat /sys/block/sda/queue/rotationalt = 0 ]; then
    echo "SSD"
else
    echo "HDD"
fi

Eu pesquisei e encontrei o comando cat no post de alguém.

Estou tentando fazer com que este script seja impresso como se fosse um SSD ou HDD (posso testar se funciona apenas alterando o igual de 0 para 1 e ele deve ler de outra maneira.

Eu também quero apenas echo/print it "SSD ou HDD", nada mais a ser mostrado.

    
por TheSebM8 11.10.2017 / 21:48

2 respostas

3

O comando cat sai 0 no sucesso, diferente de zero na falha. Você não quer o código de saída de cat ; você quer um valor em um arquivo. Use a substituição de comandos $(...) , que captura a saída do comando.

if [ "$(cat /sys/block/sda/queue/rotational)" = 0 ]; then
    echo "SSD"
else
    echo "HDD"
fi
    
por 11.10.2017 / 21:55
3
if [ "$(cat /sys/block/sda/queue/rotational)" = 0 ]; then
    echo "SSD"
else
    echo "HDD"
fi

Em bash você também pode fazer:

if [ "$(</sys/block/sda/queue/rotational)" = 0 ]; then
    echo "SSD"
else
    echo "HDD"
fi

Observe que é rotational e não rotationalt .

    
por 11.10.2017 / 21:54