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


30

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

Ответы:


39
var=$( cat foo.txt )

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

var=$( ./myscript )

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


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 говорит: «Восстанови Монику»

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