Какова концепция linux сохраняет выходные данные в переменной? - PullRequest
0 голосов
/ 25 марта 2020

Может ли кто-нибудь помочь мне понять концепцию того, как Linux сохраняет свой вывод терминала в переменной?

files=`ls`
echo $files
a.txt
b.txt

Я хочу знать, как Linux хранит это в переменной. Я имею в виду, что вывод ls в stdout будет перенаправлять в переменную files или будет иметь место какая-либо операция?

1 Ответ

0 голосов
/ 25 марта 2020

Терминал не очень актуален. Ваш вопрос, кажется, подразумевает, что все команды пишут непосредственно в терминал, а затем подстановка команд каким-то образом «копирует» то, что было записано в переменную.

Все наоборот: команды пишут в стандартный вывод , который является некоторым файлом, команда получает от того, кто запускает команду. Стандартный вывод для интерактивной оболочки - это терминал, но подстановка команд переопределяет его, заставляя оболочку захватывать вывод в памяти, а затем использовать этот вывод для установки значения переменной.

...