Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Кавычки в bash  (Прочитано 1499 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CraZZZy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
Кавычки в bash
« : 24 Декабря 2015, 01:17:37 »
Извините за нубский вопрос: как в bash экранировать одинарные кавычки?

grep -rnF '$this->data[\'breadcrumbs\'][]' ~/html - включается многострочный ввод
grep -rnF "$this->data['breadcrumbs'][]" ~/html - а так grep пишет ошибку
grep -rnF $this->data['breadcrumbs'][] ~/html - ничего не находит, хотя такая строка точно есть
sudo apt-get remove windows && sudo apt-get install linux

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Кавычки в bash
« Ответ #1 : 24 Декабря 2015, 01:37:06 »
Всё перебрали,аgrep -rnF $this->data[\'breadcrumbs\'][] ~/html
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн CraZZZy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
Re: Кавычки в bash
« Ответ #2 : 24 Декабря 2015, 01:53:46 »
По-моему что-то ещё экранировать надо: data[\'breadcrumbs\'][] - находит, а $this->data[\'breadcrumbs\'][] - не находит.
sudo apt-get remove windows && sudo apt-get install linux

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Кавычки в bash
« Ответ #3 : 24 Декабря 2015, 12:11:01 »
Если $this не переменная, то надо экранировать и $grep -rnF \$this->data[\'breadcrumbs\'][] ~/html
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн CraZZZy

  • Автор темы
  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
Re: Кавычки в bash
« Ответ #4 : 24 Декабря 2015, 15:12:17 »
Методом научного тыка:
grep -rnF \$this-\>data[\'breadcrumbs\'][] ~/htmlВот так работает.
sudo apt-get remove windows && sudo apt-get install linux

shura1

  • Гость
Re: Кавычки в bash
« Ответ #5 : 24 Декабря 2015, 19:23:42 »
Простейшим было бы
... "\$this->data['breadcrumbs'][]" ...
Если реально сложное выражение с кавычками разных типов (или просто скопировано откуда-то и большое), то иногда его лучше загнать в файл и использовать так
fgrep -f FILE ...
В таком случае шелл не видит паттерн и никаких кавычек дополнительно использовать не надо. И экранировать (бэкслэшить) тоже ничего не надо (если ключ -F применяется, конечно).

PS fgrep и grep -F это одно и тоже.
« Последнее редактирование: 26 Декабря 2015, 09:31:23 от Jshura »

 

Страница сгенерирована за 0.06 секунд. Запросов: 25.