Linux 드라이브가 SSD 또는 HDD인 경우

Linux 드라이브가 SSD 또는 HDD인 경우

저는 이 작은 스크립트를 작동시키는 방법을 찾으려고 노력하고 있습니다.

cat명령은 1 또는 0을 제공해야 합니다.

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

cat구글링해서 누군가의 게시물에서 이 명령을 찾았습니다.

sda이 스크립트를 사용하여 드라이브 가 SSD인지 HDD 인지 인쇄하려고 합니다 . 등호 뒤의 값을 0에서 1로 변경하여 작동하는지 테스트할 수 있으며, 다른 방식으로 읽어야 합니다.

또한 "SSD 또는 HDD"만 인쇄하고 다른 것은 인쇄하지 않기를 원합니다.

답변1

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

Bash에서는 다음을 수행할 수도 있습니다.

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

답변2

cat명령 은 0성공 시 종료되고 실패 시 0이 아닌 값을 반환합니다. cat파일의 값을 원하면 종료 코드가 필요하지 않습니다 . 명령 대체를 사용하여 $(...)명령 출력을 캡처합니다.

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

관련 정보