Não sou bom em bash, posso fazer o básico, mas quando se trata de várias declarações if, não sou acéfalo para elas.
Atualmente, tenho a seguinte declaração feita.
var=$(cat /sys/block/vda/queue/rotational)
dtype='nil'
if [ $var = 0 ]; then
dtype=' SSD '
elif [ $var = 1 ]; then
dtype=' HDD '
fi
Como muitas máquinas usam sda em vez de vda, estou procurando uma maneira de fazer com que haja vários? declarações if (pelo menos é assim que eu entendo)
Basicamente. Se o primeiro
var=$(cat /sys/block/vda/queue/rotational)
comando me der um erro, ele não o imprimirá. e ele escolheria este comando. (Somente se o primeiro não estiver funcionando)
var1=$(cat /sys/block/sda/queue/rotational)
dtype='nil'
if [ $var = 0 ]; then
dtype=' SSD '
elif [ $var = 1 ]; then
dtype=' HDD '
fi
No seu caso específico, você poderia simplesmente usar
||
:Isso executaria seu primeiro comando e, se o primeiro retornar um erro, execute o segundo.
Conforme mencionado em seu comentário, se você deseja evitar a saída de erro no primeiro comando, basta usar o redirecionamento: