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.

Foi útil?

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
scroll top