Eu escrevi o seguinte comando: lsblk -nl /dev/sdd -o MOUNTPOINT | awk '{if (NR!=1 && $1) { print 1; } else { print 0; }}'
É suposto verificar se alguma das partições do dispositivo fornecido, neste caso, /dev/sdd
está montada.
Mas por algum motivo, o script imprime 1 e 0? Como isso faz algum sentido?
Eu preciso deste comando para avaliar como true se houver um ponto de montagem e para false caso contrário para usá-lo no meu shellscript.
awk
executa seu código como um loop em cada linha de entrada. Você obterá a1
ou a0
para cada linha não vazia. Você poderiaSe você quiser determinar se um dispositivo tem ou não partições montadas, considere usar esta abordagem:
Se você realmente quer manter a
awk
abordagem, talvez seja isso que você está procurando. (Não sei ao certo por que você quis ignorar a primeira linha. Em meus testes, parecia se referir a todo o dispositivo e pode haver situações em que o próprio dispositivo contém um sistema de arquivos, então removi o teste de pular.)