Запитання з тегом «quoting»

Рядки, як правило, розмежовані цитатами, що викликає проблему роботи з рядками, що містять лапки.

2
Додати аргументи до 'bash -c'
Скажімо, що я хочу запустити команду через Bash так: /bin/bash -c "ls -l" Як повідомляє сторінка Man Bash, я також міг би це запустити так: # don't process arguments after this one # | pass all unprocessed arguments to command # | | # V V /bin/bash -c ls -- …

1
Чому цей файл не відображається?
За findдопомогою grepможна знайти файли, які відповідають шаблону: # find | grep error ./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html ./error_log ./includes/classes/error_log Однак, використовуючи findодин файл, перший файл не знайдено: # find . -name error* ./error_log ./includes/classes/error_log Чому файл не findзнаходить, errors.htmlколи не використовується grep? Як findвикористовується також для показу цього файлу?

1
Як переконатися, що рядок, інтерпольований у заміну sed, уникне всіх метахаргів
У мене є сценарій, який читає текстовий потік і генерує файл команд sed, який згодом запускається sed -f. Створені команди sed є такими: s/cid:image002\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1922/g s/cid:image003\.gif@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1923/g s/cid:image004\.jpg@01CC3D46\.926E77E0/https:\/\/mysite.com\/files\/1924/g Припустимо, що сценарій, який генерує sedкоманди, має щось на зразок: while read cid fileid do cidpat="$(echo $cid | sed -e s/\\./\\\\./g)" echo 's/'"$cidpat"'/https:\/\/mysite.com\/files\/'"$fileid"'/g' >> …
21 sed  quoting 

2
вкладені подвійні лапки у високоголосний однокласник
StackOverflow відповідь з> 3.5K голосів показує цей один вкладиш для присвоєння DIRдиректорії поточного скрипта Баша: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Мене спантеличують вкладені подвійні лапки. Наскільки я можу сказати, такі фрагменти двічі цитуються: "$( cd " "${BASH_SOURCE[0]}" " && pwd )" ... а все інше праворуч …

1
використання sed з ampersand (&)
Я використовую sed для пошуку та заміни шаблонів у файлах SAS, а не замінюю їх окремо. Проблема полягає в тому, що я намагаюся замінити макрозмінні, і коли я використовую ampersand він не обробляється правильно. Here's my code: sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas кожного разу, коли я запускаю цю команду, вона здається, …
19 sed  quoting  replace 

4
Як призначити значення, що містять простір, змінним у bash, використовуючи eval
Я хочу динамічно призначити значення змінним за допомогою eval. Наведений наступний фіктивний приклад: var_name="fruit" var_value="orange" eval $(echo $var_name=$var_value) echo $fruit orange Однак, коли значення змінної містить пробіли, evalповертає помилку, навіть якщо $var_valueвона ставиться між подвійними лапками: var_name="fruit" var_value="blue orange" eval $(echo $var_name="$var_value") bash: orange : command not found Будь-який спосіб …
19 bash  shell  quoting 

2
Яке значення одиничних та подвійних лапок у змінних середовища?
У своєму .profile я визначив деякі змінні середовища так: MY_HOME="/home/my_user" але здається, що змінна не оцінює, якщо я не зніму лапки і не поверну файл знову. Я вважаю, що котирування необхідні, якщо пробіли будуть, а одинарні цитати використовуються, якщо не потрібні втечі. Чи може хтось уточнити значення одиничних і подвійних …

3
Чому параметри в змінній, що котирується, виходять з ладу, але працюють, коли вони не мають котирування?
Я читав про це, я повинен навести змінні в bash, наприклад "$ foo" замість $ foo. Однак під час написання сценарію я знайшов випадок, коли він працює без лапок, але не з ними: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" …

6
Чи слід цитувати змінні при виконанні?
Загальне правило сценаріїв оболонок полягає в тому, що змінні повинні завжди цитуватися, якщо немає вагомих причин цього не робити. Для отримання більш детальної інформації, ніж ви, мабуть, хочете дізнатись, подивіться на цей чудовий запитання та запитання: наслідки для безпеки забуття процитувати змінну в оболонках bash / POSIX . Розглянемо, однак, …

2
Розширення змінної оболонки та ефект глобула та розщеплення на нього
Цей пост насправді містить два окремі питання, але я думаю, що об'єднання їх разом дасть ще трохи контексту. Я пережив це питання щодо цитат навколо змінних, але я не зовсім розумію, що означає розширення змінної в першу чергу. Отже, моє перше питання: Що таке розширення розширення в розмові unix / …

2
Одиночна пропозиція в подвійних лапках та довідник Посібника Баша
У розділі 3.1.2.3 під назвою "Подвійні котирування" посібник Баша говорить: Закриваючи символи подвійними лапками ('"'), зберігається буквальне значення всіх символів у лапках, за винятком '$', '' ',' \ 'і, коли розширення історії ввімкнено,'! '. На даний момент я переймаюся єдиною цитатою ( '). Це особливе значення, описане в попередньому розділі, …
18 bash  shell  quoting 

1
Який правильний спосіб процитувати $ (команда $ arg)?
Саме час вирішити цю загадку, яка мене турбує роками ... Я час від часу зустрічався з цим і думав, що це шлях: $(comm "$(arg)") І подумав, що мій погляд був сильно підтверджений досвідом. Але я вже не такий впевнений. Shellcheck теж не може вирішити свою думку. Це обидва: "$(dirname $0)"/stop.bash …

1
Чому ця команда ffmpeg працює в bash, а не zsh?
Сьогодні я повернувся додому з роботи (запустіть bash на коробці Ubuntu) і спробував запустити якийсь код на моєму локальному вікні арки з моїм улюбленим zsh, і команди провалилися? Команда внизу з особистою інформацією та ip явно змінилася ffmpeg -i rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 -threads 3 -vcodec copy -f segment -segment_time 2 outfiles/cam_out%04d.mp4 Він …
17 bash  zsh  quoting  url 

5
Використання згенерованого списку імен як списку аргументів - з пробілами
Я намагаюся викликати сценарій зі списком назви файлів, зібраним користувачем find. Нічого особливого, просто щось таке: $ myscript `find . -name something.txt` Проблема полягає в тому, що деякі імена шляхів містять пробіли, тому вони розбиваються на два недійсні імена при розширенні аргументів. Зазвичай я б оточував імена лапками, але сюди …

2
Як збігаються подвійні лапки (bash)?
Я використовую GNU bash 4.3.48. Розглянемо наступні дві команди, які відрізняються лише знаком одного долара. Команда 1: echo "(echo " * ")" Команда 2: echo "$(echo " * ")" Вихід з них відповідно (echo test.txt ppcg.sh ) і * Тож очевидно, що в першому випадку *глобус є глобусом, що означає, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.