Какие RE можно использовать с оператором = ~

Легкий. То, что можно сделать, готовят некоторый другой исполняемый файл, и затем cp chmod по нему.

 $ cp /bin/ls chmod
 $ cp /bin/chmod .

Первое cp создает названный файл chmod с исполняемыми полномочиями, но который является действительно ls исполняемый файл. Второе cp заполняет этот файл с двоичным кодом chmod, при сохранении выполнить полномочий конечного файла (потому что мы не указывали опций перенести полномочия исходного файла).


Другой подход должен использовать install утилита, которая является прославленной программой копирования, которая может установить полномочия за один шаг. (См. -m аргумент.)

$ install -m a+x /bin/chmod .
$ ./chmod # executes

install программа не является частью спецификации Unix, но это найдено в BSD, и в GNU Coreutils. Оба поддерживают -m опция с подобным chmod синтаксисом, и символьным и восьмеричным.

4
15.10.2015, 14:57
1 ответ

Вы невнимательно читали страницу руководства, там также сказано:

Любая часть шаблона может быть заключена в кавычки, чтобы заставить кавычки быть сопоставленными как строка.

Таким образом, $ в вашей строке означает буквальный знак доллара вместо конца строки. Переместите $ из строки, чтобы все заработало:

$ [[ "$n" =~ 'llo'$ ]] && echo yes || echo no
yes
4
27.01.2020, 20:55

Теги

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