Сценарий Bash Bash возвращается непредвиденным выходом

StackOverflow https://stackoverflow.com//questions/25061039

  •  22-12-2019
  •  | 
  •  

Вопрос

#!/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."
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top