script bash do fusor retornando saída imprevista
Pergunta
#!/bin/bash
fuser /mount/foo
echo $?
if [ $? = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
Eco $?está retornando '1' porque o processo do fusor está acessando a montagem - em vez de ecoar "a montagem está em uso", ecoa "não há processos que acessem a montagem". Não tenho certeza do que poderia estar causando esse comportamento contrário, além da sintaxe, mas talvez eu esteja construindo completamente incorretamente.
Solução
Seu segundo $?avalia o resultado de echo, que deveria ser 0.Remova o eco ou use uma variável
#!/bin/bash
fuser /mount/foo
result=$?
echo $result
if [ $result = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow