我不擅长 bash,我可以做一些基本的事情,但是当涉及到多个 if 语句时,我对他们来说是理所当然的。
我目前发表了以下声明。
var=$(cat /sys/block/vda/queue/rotational)
dtype='nil'
if [ $var = 0 ]; then
dtype=' SSD '
elif [ $var = 1 ]; then
dtype=' HDD '
fi
由于许多机器使用 sda 而不是 vda,我正在寻找一种方法来使它有多个?if 语句(至少我是这么理解的)
基本上。如果第一个
var=$(cat /sys/block/vda/queue/rotational)
命令给我和错误,它不会打印出那个。它会选择这个命令。(仅当第一个不起作用时)
var1=$(cat /sys/block/sda/queue/rotational)
dtype='nil'
if [ $var = 0 ]; then
dtype=' SSD '
elif [ $var = 1 ]; then
dtype=' HDD '
fi
在您的特定情况下,您可以简单地使用
||
:这将执行您的第一个命令,如果第一个返回错误,则执行第二个。
正如您在评论中提到的,如果您想避免在第一个命令上输出错误,只需使用重定向: