Цитирование все неправильно.Почему вы используете одинарную кавычку, обратную косую черту, одинарную кавычку, одинарную кавычку и всегда в таком порядке?В любом случае, у вас есть двойная кавычка без кавычек, поэтому оболочка ожидает, что вы добавите закрывающую кавычку для строки в кавычках, которая начинается с этой открывающей двойной кавычки.* Бесполезное использование Cat , и подумайте, как упростить ваш скрипт.По крайней мере:
grep -v ^# /abc | grep -i root | sed -e 's/"//g' | awk '{print $2}'
... но на практике
awk '/^#/ { next } /[Rr][Oo][Oo][Tt]/ { gsub ("\"",""); print $2 }' /abc
Поскольку некоторые символы в сценариях awk
и sed
имеют особое значение для оболочки,мы помещаем их в одинарные кавычки.Если вам нужно, чтобы в скрипте были одинарные кавычки, вам нужно их заключить в двойные кавычки;часто встречается строка в одинарных кавычках, смежная со строкой в двойных кавычках, например: echo '"'"'"
.За этим эхом "
(в одинарных кавычках) сразу же следует '
(в двойных кавычках).
Редактировать Обновлен анализ проблемы цитирования;добавлен пример кода;пример исправленного кода.Окончательное редактирование исправляет цитирование gsub
в скрипте awk и добавляет небольшое обсуждение цитирования.