Как подать команду, только если приложение найдено?
Мне нужна помощь с небольшим скриптом оболочки.
Приведенный ниже код работает, и если sed найден, он продолжает выполнение скрипта, но если он не существует, он выйдет.
if ! [ -x "$(command -v sed)" ]; then
echo "Error: sed is not installed, please install sed." >&2
exit
fi
Что мне нужно будет изменить, чтобы сделать это, если система обнаружит ufw, чем она будет запускать эти команды.
if ! [ -x "$(command -v ufw)" ]; then
ufw allow 80/tcp
ufw allow 443/tcp
fi
1 ответ
Просто удалите восклицательный знак, что означает "нет". Итак, теперь вместо того, чтобы проверять, "нет" ли команды, мы проверяем, существует ли она.
if [ -x "$(command -v ufw)" ]; then
ufw allow 80/tcp
ufw allow 443/tcp
fi
Другой вариант, если вы хотите сначала поймать его и выйти, если ваши условия не выполнены.
if ! [ -x "$(command -v ufw)" ]; then
echo "Your error message here"
exit # Stop execution
fi
# below code only runs if command exists
ufw allow 80/tcp
ufw allow 443/tcp