Установите минимальную установку Rust на Debian

«Подстановка команд» — это название функции языка оболочки, которая позволяет выполнять команду и заменять вывод этой команды (заменой )текста команды.

Никакая другая функция языка оболочки не позволяет вам сделать это.

Подстановка команды, т. е. полное $(...)выражение, заменяется его выходными данными, что является основным использованием подстановок команд.

Команда, которую выполняет подстановка команд, выполняется в подоболочке, что означает, что она имеет собственную среду, которая не повлияет на среду родительской оболочки.

Не все выполнения подоболочек являются подстановками команд, хотя (см. дополнительные примеры в конце ).

Пример, показывающий, что подстановка команд выполняется в подоболочке:

$ s=123
$ echo "hello $( s=world; echo "$s" )"
hello world
$ echo "$s"
123

Здесь переменная sустановлена ​​в строку 123. В следующей строке вызывается echoдля строки, содержащей результат подстановки команд.Подстановка команды устанавливает sв строку worldи выводит эту строку. Строка world— это вывод команды в подстановке команд , и, таким образом, если бы это было запущено под set -x, мы бы увидели, что вторая строка выше была бы расширена до echo 'hello world', который производит hello worldна терминале:

$ set -x
$ echo "hello $( s=world; echo "$s" )"
++ s=world
++ echo world
+ echo 'hello world'
hello world

(bashдобавляет дополнительный уровень +подсказок на каждый уровень подоболочки подстановки команд в выводе трассировки, другие оболочки могут этого не делать)

Наконец, мы показываем, что команда внутри подстановки команд выполнялась в своей собственной подоболочке, поскольку это не повлияло на значение sв вызывающей оболочке (значение sпо-прежнему 123, а не world).

Существуют и другие ситуации, когда команды выполняются в подоболочках, например,

echo 'hello' | read message

В bash, если вы не установите lastpipeпараметр (только в не -интерактивных экземплярах ), readвыполняется в подоболочке, что означает, что $messageне будет изменено в родительской оболочке, т.е. выполнение echo "$message"после приведенной выше команды будет отображать пустую строку (или любое другое значение $message, которое было до ).

Замена процесса в bashтакже выполняется в подоболочке:

cat < <( echo 'hello world' )

Это также отличается от подстановки команд.

2
09.11.2019, 13:53
1 ответ

Поскольку вы используете Debian, вместо этого вы можете использовать пакеты Rust:

sudo apt install cargo

Это значительно снизит требования по сравнению с 1,2 ГБ, взятыми .rustup.

В Debian 10 это даст вам Rust 1.34, которого достаточно для сборки rust-synapse-compress-state.

3
27.01.2020, 22:02

Теги

Похожие вопросы