Скажем, у меня есть некоторые данные конфигурации в файле config
. Для удобства я хотел бы загрузить эти данные в переменную оболочки CONFIG_DATA
.
Очевидно, я могу сделать:
CONFIG_DATA="$(cat config)"
Но это своего рода бесполезное использованиеcat
для меня. Это единственный способ сделать это? Или есть более элегантный способ сделать это?
Ответы должны отдавать предпочтение POSIX, но могут использовать любую оболочку.
shell-script
shell
io-redirection
strugee
источник
источник
Ответы:
В Bash и Z shell, по крайней мере, есть более быстрый путь:
Цитирую со справочной страницы оболочки Bourne Again:
источник
$(<file)
это гораздо реже, так что это может привести к гораздо большему количеству WTF; и прирост скорости от этой операции, если такая конфигурация должна быть загружена в переменную, вероятно, незначителенfor i in $(cat file); do ...
другой. То, что они распространены, не является причиной, чтобы продолжать использовать плохие инструменты. Это не означает, что это конкретное использование кошки - плохой слишком, я не уверен, есть ли более портативный способ. Просто говорю, что общее и знакомое! = Хорошо.