Запитання з тегом «command-substitution»

Питання щодо підстановки командної оболонки (наприклад, $ (команда) або `команда '), її механізму, правильного синтаксису тощо. Не слід плутати їх з псевдонімом.

6
Яка різниця між $ (stuff) та `stuff '?
Для підстановки команд є два синтаксиси: з дужками в доларах і з зворотними посиланнями. Запуск top -p $(pidof init)і top -p `pidof init`дає однаковий вихід. Це два способи зробити одне і те ж чи є відмінності?

3
Цитування в $ (заміна команди) в Bash
У моєму середовищі Bash я використовую змінні, що містять пробіли, і я використовую ці змінні в рамках заміни команд. На жаль, я не можу знайти відповідь на SE. Який правильний спосіб цитувати мої змінні? І як мені це зробити, якщо вони вкладені? DIRNAME=$(dirname "$FILE") чи я цитую за межами заміни? …

7
Передайте висновок попередньої команди наступному як аргумент
У мене є команда, яка виводить дані в stdout ( command1 -p=aaa -v=bbb -i=4). Рядок виводу може мати таке значення: rate (10%) - name: value - 10Kbps Я хочу присвоїти цей висновок, щоб зберегти цей показник (я думаю, тут буде корисна труба). І нарешті, я хотів би, щоб ця швидкість …

6
Як я можу виконати `date` всередині роботи вкладки cron?
Я хочу створити файл журналу для сценарію cron, який має поточну годину у імені файлу журналу. Це команда, яку я намагався використовувати: 0 * * * * echo hello >> ~/cron-logs/hourly/test`date "+%d"`.log На жаль, я отримую це повідомлення, коли воно працює: /bin/sh: -c: line 0: unexpected EOF while looking for …


3
Поняття backtick (`)
Я пробую команду $ b=5; echo `$b`; -bash: 5: command not found але він не друкує 5, як належить. Що я тут пропускаю? Що означає `(backquote / backtick) у командах? здається, говорить, що `оцінює команди всередині і замінює їх на вихід.

6
Підстановка команд: розділення на новий рядок, але не пробіл
Я знаю, що можна вирішити цю проблему кількома способами, але мені цікаво, чи є спосіб це зробити, використовуючи лише вбудовані файли bash, а якщо ні, то який найефективніший спосіб це зробити. У мене є файл із таким вмістом AAA B C DDD FOO BAR під яким я маю на увазі …

5
Чому оболонка Command Substitution заміщує останній знак нового рядка?
Як показано в наступному прикладі, і як у моєму недавньому запитанні В баші, куди пішов останній знак нового рядка? , Я хочу знати "чому" це відбувається x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # Output is: 610a62 # The trailing newline from the 'echo' command # has …

4
Яка різниця між `curl | sh` і `sh -c“ $ (згортка) ”`?
Це питання було перенесено з помилки сервера, оскільки на нього можна відповісти на Unix & Linux Stack Exchange. Мігрували 2 роки тому . Один простий спосіб установки Docker (наприклад): curl -sSL https://get.docker.com/ | sh Однак я також бачив деякі, які виглядають так (на прикладі Докера): sh -c "$(curl -sSL https://get.docker.com/)" …

1
Чому функція не повертається до закінчення фонового процесу?
Розглянемо цей сценарій: #!/bin/bash function start { leafpad & echo $! } PID=$(start) echo "PID is $PID" Сценарій не продовжується після його закриття, поки процес аркуша не закінчиться, навіть якщо це фоновий процес. Чому це? Чи можливо запустити фоновий процес з функції?

1
Що вимагає POSIX для цитованих тут документів у підстановці команд?
У цьому питанні хтось повідомляє про проблему, використовуючи тут документ із цитованим словом-роздільником всередині $(...)підстановки команд , де зворотний \косий рядок в кінці рядка всередині документа запускає продовження лінії приєднання нового рядка , тоді як той самий документ, що знаходиться за межами заміни команди, працює, як очікувалося . Ось спрощений …

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


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

3
Будь-яка причина використовувати або навчати підстановці нової розробки?
Наскільки я розумію, що більш сучасний $(...)синтаксис заміни команд віддається перевагу над `синтаксисом, що базується на старій основі, через легше і менш схильне до помилок синтаксис та уникнути помилок. Крім того, здається, що більшість /bin/shтипів снарядів в сучасному режимі використовують підтримку $(…): баш ash (і тому BusyBox, так що найбільше …

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