Вопросы с тегом «command-substitution»

Вопросы о подстановке команд оболочки (например, $ (команда) или `команда`), их механизме, правильном синтаксисе и т. Д. Не следует путать с псевдонимами.


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

7
Передать вывод предыдущей команды next в качестве аргумента
У меня есть команда, которая выводит данные в 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 matching ``' …


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

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

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

4
В чем разница между `curl | sh` и `sh -c“ $ (curl) »`?
Этот вопрос был перенесен из-за сбоя сервера, поскольку на него можно ответить в Unix и Linux Stack Exchange. Мигрировал 2 года назад . Например, один из простых способов установки Docker: curl -sSL https://get.docker.com/ | sh Тем не менее, я также видел некоторые из них, которые выглядят так (на примере Docker): …

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

1
Что POSIX требует для цитируемых здесь документов внутри подстановки команд?
В этом вопросе кто-то сообщает о проблеме, используя документ here со словом в кавычках в кавычках внутри $(...)подстановки команд , где обратный слеш \в конце строки внутри документа запускает продолжение строки, соединяющей строки , в то время как тот же документ здесь вне подстановки команд работает должным образом , Вот …

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, поэтому большинство встроенных Linux) тире FreeBSD / bin / sh И $(…)определено …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.