Остановитесь в #coreboot на IRC или присоединитесь к почтовой рассылке и укажите, где у Вас есть проблема. Мы пытаемся ясно дать понять документацию, но и coreboot и qemu разрабатывают быстро.
Можно полностью избежать потребности заключить использованию в кавычки здесь документы. Обратите внимание, что установка маркировки в единственных / двойных кавычках (как в "EOF" в примере ниже) отключает переменную и оценку команды в рамках текста.
cat <<"EOF" >>~/globalLog.txt
cat file2.txt | sed 's/"//g' > file3.txt ## Step 2
EOF
У Вас есть много вариантов, и каждый из них может быть удобным в различных ситуациях.
Двойная кавычка целая строка как один, и Escape литеральные двойные кавычки внутри (легкий читать, если у Вас есть только одно такое возникновение, но Вы могли бы закончить с частоколом):
echo "cat file2.txt | sed 's/\"//g' > file3.txt ## Step 2 " >> ~/globalLog.txt
Используйте различные кавычки для различных частей строки:
echo "cat file2.txt | sed 's/"'"'"//g' > file3.txt ## Step 2 " >> ~/globalLog.txt
Использовать echo
способность обработать несколько аргументов. Это применимо, если только отдельное слово содержит незаконный символ, так как результат будет обычно иметь пространство между каждым аргументом, таким образом, это не будет работать на Вашу строку. Альтернативный пример:
echo 'foo"' "'bar"
печать
foo" 'bar
Используйте несколько echo -n
операторы (или printf %s
) сопровождаемый echo
без -n
:
echo -n "cat file2.txt | sed '" >> ~/globalLog.txt
echo -n 's/"' >> ~/globalLog.txt
echo "//g' > file3.txt ## Step 2 " >> ~/globalLog.txt
Не используйте кавычки вообще, но выходите из всех специальных символов:
echo cat\ file2.txt\ \ \|\ sed\ \'s/\"//g\'\ \>\ file3.txt\ \#\#\ Step\ 2\ >> ~/globalLog.txt
Обратите внимание, что не возможно выйти из одинарных кавычек в единственной заключенной в кавычки строке.
И если в сомнении, Использование Больше Quotes™.
В Вашем случае, однако, похоже на вход команды прежде, чем выполнить его. Уже существует очень хорошее решение для работы с командами как текст.
'don'\''t'
- это подобно Вашему "..."'"'"..."
пример, но немного легче следовать.
– Random832
24.10.2012, 20:06
Существует простой, систематический и совместимый POSIX способ заключить любую строку в кавычки. Только необходимо помнить два правила:
\'
'printf "foo\n"'
Проиллюстрировать, как использовать эти правила вместе, слово don't
может систематически заключаться в кавычки как это: 'don'\''t'
Можно часто находить более читаемый способ заключить строки в кавычки, но когда вещи являются сложными, это - надежный способ получить заключение в кавычки, Вы хотите.
Заключенная в кавычки форма строки в вопросе:
$ echo 'cat file2.txt | sed '\''s/"//g'\'' > file3.txt ## Step 2 ' >> ~/globalLog.txt
просто выйдите "
как так:
echo "cat file2.txt | sed 's/\"//g' > file3.txt ## Step 2 " >> ~/globalLog.txt
\`$
также. Легче использовать одинарные кавычки.
– Gilles 'SO- stop being evil'
25.10.2012, 00:57
$
только там для выражения его оболочки, она не имеет никакого отношения,
– h3rrmiller
25.10.2012, 15:47
Просто
$ cat >> ~/globalLog.txt
<now type your command>
echo "cat file2.txt | sed 's/"//g' > file3.txt ## Step 2 "
<hit ctrl-d>
EOF
. Без них здесь текст подвергается переменному расширению, которое иногда полезно. – Dale Hagglund 24.10.2012, 18:43