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

13
Вложенные кавычки в подоболочках

Скажем, я должен использовать кавычки для инкапсуляции вывода subshell, например: DATA="$(cat file.hex | xxd -r)" Но мне нужно вложить такие вещи, как: DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")" Я не могу использовать одинарные кавычки, потому что они не раскрывают переменные...

12
Как ksh93 избегает разветвлений в подстановке команд

Данный cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))' снаряды, как правило, должны сделать 2 вилки, чтобы это произошло strace-f(){ strace -f "$@" 2>&1; }; for sh in dash bash zsh ksh; do printf "$sh\t" ; strace-f $sh -c "$cmd" |grep -e clone -e fork -c; done кроме kshгероически делает это,...

12
Многовариантный для циклов

Есть ли способ указать несколько переменных (не только целые числа) в forциклах в bash? У меня может быть 2 файла, содержащие произвольный текст, с которым мне нужно было бы работать. Что мне функционально нужно, так это: for i in $(cat file1) and j in $(cat file2); do command $i $j; done Есть...

11
Как я могу генерировать аргументы для другой команды с помощью подстановки команд

Вслед за: неожиданное поведение при подстановке команд оболочки У меня есть команда, которая может принять огромный список аргументов, некоторые из которых могут законно содержать пробелы (и, возможно, другие вещи) Я написал скрипт, который может генерировать эти аргументы для меня, с кавычками, но...

11
Понимание подстановки команд чтения файлов в Bash

Я пытаюсь понять, как именно Bash обрабатывает следующую строку: $(< "$FILE") Согласно странице руководства Bash, это эквивалентно: $(cat "$FILE") и я могу следовать линии рассуждений для этой второй строки. Bash выполняет раскрытие переменной $FILE, вводит подстановку команды, передает значение...

10
Как определяется статус возврата присвоения переменной?

Я видел конструкции в сценариях, таких как это: if somevar="$(somecommand 2>/dev/null)"; then ... fi Это где-то задокументировано? Как определяется возвращаемый статус переменной и как она связана с подстановкой команд? (Например, получу ли я такой же результат с if echo "$(somecommand...

10
Может ли подстановка команд быть вложенной в подстановку переменных?

Я хотел бы использовать подстановку переменных в конкретной строке, к которой я обращаюсь через команду. Например, если я скопирую что-то в буфер обмена, я получу к нему доступ следующим образом. $ xclip -o -selection clipboard Here's a string I just copied. Если я назначу его переменной, то я могу...

10
Назначения похожи на команды со статусом выхода, кроме случаев, когда есть подстановка команд?

Смотрите следующие примеры и их вывод в оболочках POSIX: false;echo $?или false || echo 1:1 false;foo="bar";echo $?или foo="bar" && echo 0:0 foo=$(false);echo $?или foo=$(false) || echo 1:1 foo=$(true);echo $?или foo=$(true) && echo 0:0 Как указано в ответе с наибольшим количеством...

10
если команда в find -exec

Я просто пытался перечислить все каталоги и файлы в текущем каталоге, а также написать, если это файл или каталог, с помощью следующей команды: find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \; Я знаю, что это глупая команда, я могу использовать другие вещи, такие...

9
Почему нет новой строки в конце цитирования подоболочки и передачи результатов в echo?

Когда я делаю ls | grep pngвывод grep: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (Имя файла, символ новой строки, имя файла, символ новой строки) затем echo $(ls | grep png)выводит: 2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png (имя...

9
Разделить вывод команды по переносу строки?

У меня есть команда, возвращающая несколько строк. Для дальнейшей обработки мне нужно обработать каждую строку этих строк. Мой текущий код работает путем изменения IFS ( Разделитель внутренних полей ): ROWS=$(some command returning multiple lines) O=$IFS #save original IFS IFS=$(echo -en "\n\b") #...

8
Какие оболочки не поддерживают расширение в виде круглых скобок и требуют запятых?

Современная рекомендация заключается в использовании: $(...) вместо старшего: `...` главным образом для удобочитаемости и избежания необходимости экранирования при вложении. Какие оболочки не поддерживают $(...)форму, и используются ли они до сих...