#linux #bash #ubuntu
#linux #bash #ubuntu
Вопрос:
Я хочу создать скрипт, который в зависимости от дистрибутива выполняет набор команд (в этом примере я хочу проверить наличие Ubuntu и Centos). Я ввел базовую инструкцию if-else в скрипт, но я новичок в bash и не могу понять, почему это не работает. Вот код:
a= lsb_release -i | awk -F " " '{print $3}'
if [ "$a"=="Ubuntu" ]; then
echo "$a"
else
echo "Not ubuntu"
fi
Заранее спасибо!
Комментарии:
1. измените его на команду:
a=$(lsb_release -i | awk -F " " '{print $3}')
2. Добавьте ошибку в свой скрипт и вставьте ее в shellcheck.net
3. при использовании для сравнения строк на равенство используется
[
только одна=
строка, поэтомуif [ "$a" = "Ubuntu" ]; then
посмотрите наman [
. также посмотрите на-s
вариантlsb_release
, который предоставит вам только ту информацию, которую вы хотите, без заголовка, например.lsb_release -si
4. Извините за поздний ответ. Все ваши ответы по-своему мне очень помогли. Я устранил проблему и научился делать это правильно. Спасибо!