Сценарий Bash Bash возвращается непредвиденным выходом
Вопрос
#!/bin/bash
fuser /mount/foo
echo $?
if [ $? = 0 ]; then
echo "There are no processes accessing foo."
else
echo "foo is in use."
.
echo $?Возвращается «1», потому что процесс FUSER обращается к креплению - вместо того, чтобы повторять «Монта используется», «o х эхо» нет процессов, доступа к креплению. "Я не уверен, что может вызвать это наоборот в сторону от синтаксиса, но, возможно, я строю его полностью неправильно.
Решение
Ваш второй $?Оценивает результат эхо, который должен быть 0. Удалить эхо или использовать переменную вместо
#!/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."
. Не связан с StackOverflow