Проверить, соответствует ли многострочная строка выражению

ls * info *

Здесь должны быть перечислены все файлы в этом каталоге, которые имеют info в любом месте своего имени.

-121--174238-

Я смог запустить его с неофициальным хранилищем yum, которое было опубликовано здесь: https://copr.fedoraproject.org/coprs/admiralnemo/i3wm-el7 . На этой странице содержатся хорошие инструкции.

-121--186609-

Поскольку вы используете очень новое оборудование графического процессора, рекомендуется использовать самые последние стабильные драйверы.
Установите новейшие стабильные драйверы NVIDIA, поддерживающие GTX960 системных драйверов GPU PPA.
Перед установкой новых драйверов удалите все программное обеспечение, связанное с NVIDIA, которое было установлено ранее.

Откройте терминал и выполните:

sudo apt-get purge nvidia*  
sudo reboot

Установите последние текущие стабильные драйверы NVIDIA из недолгой ветви NVIDIA, выполнив команду (так же как у вас есть ноутбук с гибридным графическим решением, установите поддержку NVIDIA Optimus):

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-355 nvidia-prime
sudo reboot  

Для переключения между графикой intel и графикой nvidia - откройте Настройки сервера NVIDIA X - > Основные профили .

0
02.05.2018, 09:22
2 ответа

Ваш пример отлично работает. bashне имеет проблем с сопоставлением со строкой, содержащей встроенные символы новой строки.

С таким шаблоном, как *$'run_botch\n'*, он может соответствовать даже новой строке после строки run_botch.

0
28.01.2020, 04:24

Да, будет работать корректно.

a=$(declare -f cd);

И

b='cd () 
{ 
    prev_cd "$@";
    echo "botch cd hook invoked.";
    run_botch
}'

Соответствует правильно:

[[ "$a" == "$b" ]] && echo match

Звездочки не нужны.

Одно предостережение: расширение команды a=$(declare -f cd)удаляет все пробелы в конце (с IFS по умолчанию ). Поэтому переменная bзаканчивается на:

}'

, а не с

}
'

, что приведет к сбою (точного )совпадения.


Если вы хотите проверить, существует ли какая-либо строка внутри переменной a, вам нужны звездочки:

[[ $a == *run_botch* ]] && echo match

Кавычки необязательны (слева ), справа кавычки могут изменить интерпретацию строки.

0
28.01.2020, 04:24

Теги

Похожие вопросы