Одиночные кавычки нельзя вставлять в одинарные кавычки. Попробуйте:
$ grep "require('jquery')" index.js
window.jQuery = require('jquery');
В качестве альтернативы вы можете завершить строку в одинарных кавычках, добавить экранированную одинарную кавычку, а затем перезапустить строку в одинарных кавычках:
$ grep 'require('\''jquery'\'')' index.js
window.jQuery = require('jquery');
Чтобы лучше понять, что происходит, вы можете использовать echo операторы, чтобы увидеть, как оболочка обрабатывает строки:
$ echo 'require('jquery')'
require(jquery)
В приведенном выше примере есть две строки в одинарных кавычках: require (
и )
. Что касается оболочки, строка jquery
не заключена в кавычки.
$ echo "require('jquery')"
require('jquery')
Поскольку оболочка принимает одинарные кавычки как часть строк, заключенных в двойные кавычки, вышеуказанное работает нормально.
Иногда, чтобы избежать расширений оболочки, нужно, чтобы все было в строке в одинарных кавычках. В этом случае:
$ echo 'require('\''jquery'\'')'
require('jquery')
В приведенном выше примере есть три строки в одинарных кавычках: require (
, jquery
и )
. Между этими строками находятся одинарные кавычки, которые экранируются, чтобы оболочка рассматривала их как обычные символы.
Этот ответ предполагает, что оболочка является оболочкой bash, dash, ash или другой оболочкой, производной от POSIX или bourne. Для получения информации о других снарядах см. ответ Стефана Шазеласа .
readlink
ожидает символическую ссылку, а затем отображает файл/дир, на который указывает символическая ссылка.