string-collect - объединение строк в одну
Краткое описание
string collect [-a | --allow-empty] [-N | --no-trim-newlines] [STRING ...]
Описание
string collect собирает свой ввод в один выходной аргумент, не разбивая выходные данные при использовании в подстановке команд. Это полезно, когда нужно собрать многострочный вывод другой команды в переменную. Код возврата: 0, если любой выходной аргумент не пустой, или 1 в противном случае.
Команда, подобная echo (cmd | string collect), в основном эквивалентна цитированной подстановке команд (echo "$(cmd)"). Основное отличие состоит в том, что первая выдает ноль или один элемент, тогда как цитированная подстановка команд всегда выдает один элемент из-за интерполяции строк.
Если вызывается с несколькими аргументами вместо ввода, string collect сохраняет каждый аргумент отдельно, где количество выходных аргументов равно количеству аргументов, переданных в string collect.
Любые завершающие символы новой строки во входных данных обрезаются, так же как и при подстановке "$(cmd)". Используйте --no-trim-newlines, чтобы отключить это поведение, что может быть полезно при выполнении команды, такой как set contents (cat filename | string collect -N).
С помощью --allow-empty, string collect всегда выводит один (пустой) аргумент. Это можно использовать для предотвращения исчезновения аргумента.
Примеры
>_ echo "zero $(echo one\ntwo\nthree) four" zero one two three four >_ echo \"(echo one\ntwo\nthree | string collect)\" "one two three" >_ echo \"(echo one\ntwo\nthree | string collect -N)\" "one two three " >_ echo foo(true | string collect --allow-empty)bar foobar
© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.6/cmds/string-collect.html