Вопросы с тегом «quoting»

Строки обычно отделяются кавычками, что поднимает проблему работы со строками, которые включают кавычки.

623
Как выполнить поиск для нескольких шаблонов с шаблоном, имеющим символ трубы?

Я хочу найти все строки в нескольких файлах, которые соответствуют одному из двух шаблонов. Я попытался найти шаблоны, которые я ищу, набрав grep (foo|bar) *.txt но оболочка интерпретирует это |как канал и жалуется, когда barне является исполняемым файлом. Как я могу grep для нескольких шаблонов в...

349
Как удалить файл, имя которого начинается с «-» (дефис или минус)?

Как удалить файл, имя которого начинается с тире (дефис или минус) -? Я ssh'd на удаленном сервере OSX, и у меня есть этот файл в моем каталоге: tohru:~ $ ls -l total 8 -rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help ... Как в мире я могу удалить --helpиз CLI? Эта проблема иногда встречается в...

285
Почему мой сценарий оболочки заглушает пробелы или другие специальные символы?

Или вводное руководство по надежной обработке имени файла и другой передаче строк в сценариях оболочки. Я написал сценарий оболочки, который работает хорошо большую часть времени. Но он душит некоторые входные данные (например, некоторые имена файлов). Я столкнулся с такой проблемой, как: У меня...

248
Какие символы мне нужно экранировать при использовании sed в скрипте sh?

Возьмите следующий скрипт: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Если я попытаюсь запустить это в sh( dashздесь), это потерпит неудачу из-за круглых скобок, которые должны быть экранированы. Но мне не нужно избегать обратной косой черты (между октетами или в \sили \1). Какое правило...

206
Последствия для безопасности: забыть заключить переменную в оболочку bash / POSIX

Если вы следили за unix.stackexchange.com какое-то время, вы должны надеяться, что уже знаете, что оставление переменной без кавычек в контексте списка (как в echo $var) в оболочках Bourne / POSIX (исключение zsh) имеет очень особое значение и не должно быть сделано, если у вас нет очень веских...

187
Почему 'ls' внезапно заключает элементы в одинарные кавычки?

Я только что заметил, что на одном из моих компьютеров (на котором запущен Debian Sid) всякий раз, когда я lsнабираю имя файла с пробелами, его заключают в одинарные кавычки. Я немедленно проверил свои псевдонимы, чтобы найти их нетронутыми. wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt...

160
Что `(backquote / backtick) означает в командах?

Я наткнулся на следующую команду: sudo chown `id -u` /somedir и мне интересно: что означает `символ. Например, я заметил, что хотя приведенная выше команда работает хорошо, приведенная ниже не работает: sudo chown 'id -u'...

126
Цитирование в $ (подстановка команд) в Bash

В моей среде Bash я использую переменные, содержащие пробелы, и я использую эти переменные в подстановке команд. К сожалению, я не могу найти ответ на SE. Как правильно указать мои переменные? И как мне это сделать, если они вложенные? DIRNAME=$(dirname "$FILE") или я цитирую вне подстановки?...

120
Когда необходимо двойное цитирование?

Старый совет заключался в том, чтобы заключать в двойные кавычки любое выражение, включающее $VARIABLE, по крайней мере, если кто-то хотел, чтобы оболочка интерпретировала его как один отдельный элемент, в противном случае любые пробелы в содержимом $VARIABLEбудут отбрасывать оболочку. Однако я...

117
Как я могу выполнить `date` внутри задания cron?

Я хочу создать файл журнала для скрипта cron с текущим часом в имени файла журнала. Это команда, которую я пытался использовать: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log К сожалению, я получаю это сообщение при запуске: /bin/sh: -c: line 0: unexpected EOF while looking...

87
Не можете использовать восклицательный знак (!) В bash?

Я пытаюсь использовать команду curl для доступа к URL-адресу http с восклицательным знаком ( !) на своем пути. например: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" консоль отвечает с bash: ... event not found. Что здесь происходит? и какой будет правильный синтаксис, чтобы...

86
Почему расширение параметров с пробелами без кавычек работает в двойных скобках «[[», но не в одинарных скобках «[»?

Я запутался с использованием одинарных или двойных скобок. Посмотрите на этот код: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Это работает отлично, хотя строка содержит пробел. Но когда я изменяю это на одну скобку: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ];...

85
Использование sed для поиска и замены сложной строки (желательно с регулярным выражением)

У меня есть файл со следующим содержанием: <username><![CDATA[name]]></username> <password><![CDATA[password]]></password> <dbname><![CDATA[name]]></dbname> и мне нужно сделать скрипт, который меняет «имя» в первой строке на «что-то», «пароль»...

81
Что значит иметь в скрипте строку с префиксом $ Dollign?

Я только что видел это в сценарии инициализации: echo $"Stopping Apache" Для чего этот знак доллара? Мои исследования до сих пор: Я нашел это в руководстве по bash: extquote Если установлено, $'string'и $"string"цитирование выполняется внутри ${parameter}расширений, заключенных в двойные кавычки....

73
В чем разница между $ * и $ @?

Рассмотрим следующий код: foo () { echo $* } bar () { echo $@ } foo 1 2 3 4 bar 1 2 3 4 Это выводит: 1 2 3 4 1 2 3 4 Я использую Ksh88, но меня интересуют и другие распространенные оболочки. Если вы знаете какие-либо особенности конкретных оболочек, пожалуйста, укажите их. Я нашел следующее в...

66
Как избежать кавычек в оболочке?

У меня проблемы с экранированием символов в bash. Я хотел бы избежать одинарных и двойных кавычек при выполнении команды под другим пользователем. Для целей этого вопроса, скажем, я хочу отобразить следующее на экране: 'single quote phrase' "double quote phrase" Как я могу избежать всех специальных...