Як призначити виведення коду bash-сценарію змінної в іншому сценарії


29

У мене є bash-скрипт, який виробляє вихід кішок, коли він бере аргумент. У мене також є ще один bash-скрипт, який виконує перший скрипт bash з аргументом, з яким я хочу створювати кішкові результати. Як я можу зберігати ті виводи котів, які були отримані першим скриптом bash, у змінних?

Відповіді:


38
var=$( cat foo.txt )

зберігає висновок catзмінної var.

var=$( ./myscript )

буде зберігати вихід myscriptу тій самій змінній.


5
швидка порада для беш-новачок, як я, інтервал та не інтервал - це важливо, дотримуйтесь точну схему! наприклад var = $( cat foo.txt )не буде працювати
sojim2

@Dalker чи існує обмеження, яким може бути розмір foo.txt? У мене більше 10 мб даних. Чи б кішка зберігала всю справу? Я хочу знати, чи є обмеження також для подальшого використання.
myhouse

@sojim Чи знаєте ви відповідь на це?
myhouse

1
@myhouse Відповідно до цієї відповіді , немає обмеження через самого удару , але обмеження - це швидше пам'ять, виділена на базовому середовищі, яка, звичайно, може змінюватися.
Далкер

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.