Как назначить вывод cat скрипта bash переменной в другом скрипте

30

У меня есть скрипт bash, который выдает вывод cat, когда он принимает аргумент. У меня также есть другой скрипт bash, который выполняет первый скрипт bash с аргументом, с помощью которого я хочу создать вывод cat Как мне сохранить выходные данные cat, созданные первым скриптом bash, в переменных?

eltigre
источник

Ответы:

39
var=$( cat foo.txt )

будет хранить выходные данные catв переменной var.

var=$( ./myscript )

будет хранить выходные данные myscriptв той же переменной.

Dalker
источник
5
Быстрый совет для новичков Bash, как я, интервалы и не интервалы важны, следуйте точному шаблону! например var = $( cat foo.txt )не получится
sojim2
@ Далкер есть ли предел размера файла foo.txt? У меня есть более 10 МБ данных. Будет ли кошка хранить все это? Я хочу знать, есть ли предел для дальнейшего использования.
мой дом
@sojim Знаете ли вы ответ на этот вопрос?
мой дом
1
@myhouse Согласно этому ответу, нет никаких ограничений из-за самого bash, но это скорее память, выделенная в базовой среде, которая, конечно, может меняться.
Далкер
3

Используйте двойные кавычки. Попробуй это

var="$(cat foo.txt)"
Консорциум ИКТ Пантай Тимур
источник
3
Почти никогда не бывает плохой идеей помещать вещи (особенно те, которые начинаются с $) в двойные кавычки, и здесь это не повредит. Однако в случае присвоения переменной это не помогает.
G-Man говорит: «Восстановите Монику»
@ G-Man: Что если эта переменная содержит символы новой строки или табуляции, которые мы хотим оставить в переменной?
jvriesem
@jvriesem: Что делать, если это так? У вас есть вопрос?
G-Man говорит: «Восстанови Монику»
Когда я запускаю эту команду, она, кажется, избавляется от всех моих новых строк.
К. Карпентер