Você precisa dividir seu teste if
em vários
if [ -f "$LaunchDaemon" ]
then
echo $LaunchDaemon found
elif [ -f "$launchAgent" ]
then
echo $launchAgent found
elif [ ...
...
else
echo Not found
fi
tipo estrutura (preencha os espaços em branco).
Se você quiser encontrar todas as correspondências, faça isso como vários testes, definindo uma variável para ver se algo foi encontrado ou não
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
Agora, às vezes, queremos definir uma variável para saber qual delas foi encontrada. Isso é comum quando se tenta encontrar um programa ou arquivo correspondente (por exemplo, nos velhos tempos, poderíamos ter /usr/lib/sendmail
ou /usr/sbin/sendmail
dependendo da distribuição do sistema operacional, então precisaríamos pesquisar para encontrá-lo).
found=
for f in "$LaunchDaemon" "$launchAgent" "$mobileLaunchDaemon" "$mobileAgent"
do
[[ -f "$f" ]] && found="$f"
done
Agora temos $found
apontando para uma entrada encontrada e podemos testar isso.
if [ -n "$found" ]
then
echo Found: $found
else
echo Nothing found
fi
O segundo loop também pode encontrar todas versões com uma pequena alteração:
found=
for f in "$LaunchDaemon" "$launchAgent" "$mobileLaunchDaemon" "$mobileAgent"
do
[[ -f "$f" ]] && found="$found $f"
done
A desvantagem disso é que pode haver um espaço à frente, então devemos remover isso:
found="${found# }"