Вам необходимо разбить тест if
на структуру с несколькими типами
if [ -f "$LaunchDaemon" ]
then
echo $LaunchDaemon found
elif [ -f "$launchAgent" ]
then
echo $launchAgent found
elif [ ...
...
else
echo Not found
fi
(заполните пробелы самостоятельно).
Если вы хотите найти все совпадения, просто сделайте это как несколько тестов, задав переменную, чтобы видеть, было что-то найдено или нет.
found=0
if [ -f "$LaunchDaemon" ]
then
echo $LaunchDaemon found
found=1
fi
if [ -f "$launchAgent" ]
then
echo $launchAgent found
found=1
fi
...
if [ $found == 0 ]
then
echo Not found
fi
Иногда мы хотим установить переменную, чтобы мы знали, какая из них была найдена. Это обычное дело при попытке найти подходящую программу или файл (например, в старые времена у нас могли быть / usr / lib / sendmail
или / usr / sbin / sendmail
в зависимости от Дистрибутив ОС, поэтому нам нужно будет поискать его, чтобы найти).
found=
for f in "$LaunchDaemon" "$launchAgent" "$mobileLaunchDaemon" "$mobileAgent"
do
[[ -f "$f" ]] && found="$f"
done
Теперь у нас есть $ found
, указывающий на найденную запись, и мы можем проверить это.
if [ -n "$found" ]
then
echo Found: $found
else
echo Nothing found
fi
Второй цикл также может найти все версии с незначительными изменениями:
found=
for f in "$LaunchDaemon" "$launchAgent" "$mobileLaunchDaemon" "$mobileAgent"
do
[[ -f "$f" ]] && found="$found $f"
done
Обратной стороной этого является то, что впереди может быть начальный пробел, поэтому мы должны удалить это:
found="${found# }"