Intereting Posts
Файл / каталог не удаляется? Два IP-адреса на одной сетевой плате (сетевая карта) Каков наилучший способ редактирования файла с помощью сценария bash? Перезапуск youtube-dl ALSA установил plughw по умолчанию Перенаправить stdout и stderr и переопределить опцию noclobber Почему файлы в моем домашнем каталоге создаются как общедоступные, несмотря на более ограничительную umask? Я хочу перезагрузить систему, как только был выполнен поиск, чтобы увидеть, что никто не зарегистрирован Запись / dev / random в файл? Как я могу узнать, когда моя файловая система была последней fsck-ed? Связь между именами службы systemd и записями journald Есть ли способ сказать logrotate игнорировать открытые файлы? Не удалось загрузить VMMR0.r0 (VERR_SUPLIB_OWNER_NOT_ROOT) Отменить или изменить по умолчанию «повторное обнаружение мониторов» windows + p cinnamon keybinding с использованием gsettings Динамически переформатированные страницы пользователя при изменении размеров терминала

Невозможно сравнить результат lsb_release с строкой в ​​Bash

Я делаю что-то неправильно в сравнении строк ниже. Он работает, если я устанавливаю переменную и сравниваю ее, но я не могу скопировать значение в строку. Кто-нибудь знает, что случилось?

$ if [ "$(lsb_release -i)" = "Distributor ID: RedHatEnterpriseClient" ]; then echo yes; else echo no; fi no $ lsb_release -i Distributor ID: RedHatEnterpriseClient $ var="$(lsb_release -i)" $ if [ "$(lsb_release -i)" = "$var" ]; then echo yes; else echo no; fi yes 

В этом случае я предлагаю -is :

 if [ $(lsb_release -is) = "Debian" ]; then echo yes; else echo no; fi 

Это потому, что вывод из lsb_release -i использует вкладку вместо пространства:

 lsb_release -i|od -c 0000000 D istributor ID : \t 0000020 R ed H at E nterprise 0000040 S erver \n 

Обратите внимание на \t в конце первой строки. Включите это в свою строку сравнения, и она будет успешной:

 if [ "$(lsb_release -i)" = $'Distributor ID:\tRedHatEnterpriseServer' ]; ... 

Это не похоже на хорошее решение, но это работает:

 if [ "$(echo $(lsb_release -i))" = "Distributor ID: RedHatEnterpriseClient" ]; then echo yes; else echo no; fi