Команда cat
завершает работу 0
в случае успеха, а не -ноль в случае неудачи. Вам не нужен код выхода cat
; вам нужно значение в файле. Используйте подстановку команд $(...)
, которая захватывает вывод команды.
if [ "$(cat /sys/block/sda/queue/rotational)" = 0 ]; then
echo "SSD"
else
echo "HDD"
fi