Я знаю, что такое использование $( ), но нет отдыха. Просто $(command) &это меня смущает.
AlphaOmega
Ответы:
20
Короткий ответ
Учитывая синтаксис $(command) &, то результат будет таким же , как если бы вы взяли выход бежать просто , commandа затем пытался бежать , что в качестве команды. И все это будет сделано в фоновом режиме, что означает, что не будет видимого вывода или зависания в терминале.
Например, если у нас был текстовый файл с именем mycommand.txtс содержанием:
echo "Hello World"
Тогда команда
$(cat mycommand.txt)&
будет эквивалентно бегу
echo "Hello World"&
Но так как мы добавили амперсанд ( &), мы не увидели бы никакого вывода этой команды, поэтому в этом примере это было бы довольно бесполезно.
Длинный ответ (объяснение)
Знак доллара $(переменная)
Знак доллара перед вещью в скобках обычно относится к переменной. Это означает, что эта команда либо передает аргумент этой переменной из скрипта bash, либо получает значение этой переменной для чего-либо. Разница в сценариях bash для вызова и объявления переменных заключается в следующем:
Объявите переменную без знака доллара и назвать его с знаком доллара. Например, скрипт, который содержит это
#!/bin/bash
STR="Hello World!"
echo $STR
Вывел бы это
HelloWorld!
Скобки ()- Подстановка команд
Подстановка команд позволяет выводу команды заменить саму команду. Подстановка команд происходит, когда команда заключена следующим образом:
$(command)
или
`command`
Bash выполняет расширение, выполняя команду в среде подоболочек и заменяя подстановку команды стандартным выводом команды, удаляя все завершающие символы новой строки. Введенные новые строки не удаляются, но они могут быть удалены во время разделения слов. Подстановка команд $(cat file)может быть заменена эквивалентной, но более быстрой $(< file).
Амперсанд &- Фоновый процесс
А затем амперсанд, или &символ, как вы сказали, используется для запуска в фоновом режиме.
Это символ, присутствующий в окне терминала, который в зависимости от того, что вы пытаетесь сделать, может не понадобиться для входа. Когда вы откроете терминал, вы сразу увидите его там.
monkeyman_stones
Я не понимаю Хотя и короткий, он отвечает на реальный вопрос, а принятый ответ - нет.
$( )
, но нет отдыха. Просто$(command) &
это меня смущает.Ответы:
Короткий ответ
Учитывая синтаксис
$(command) &
, то результат будет таким же , как если бы вы взяли выход бежать просто ,command
а затем пытался бежать , что в качестве команды. И все это будет сделано в фоновом режиме, что означает, что не будет видимого вывода или зависания в терминале.Например, если у нас был текстовый файл с именем
mycommand.txt
с содержанием:Тогда команда
будет эквивалентно бегу
Но так как мы добавили амперсанд (
&
), мы не увидели бы никакого вывода этой команды, поэтому в этом примере это было бы довольно бесполезно.Длинный ответ (объяснение)
Знак доллара
$
(переменная)Знак доллара перед вещью в скобках обычно относится к переменной. Это означает, что эта команда либо передает аргумент этой переменной из скрипта bash, либо получает значение этой переменной для чего-либо. Разница в сценариях bash для вызова и объявления переменных заключается в следующем:
Объявите переменную без знака доллара и назвать его с знаком доллара. Например, скрипт, который содержит это
Вывел бы это
Скобки
()
- Подстановка командПодстановка команд позволяет выводу команды заменить саму команду. Подстановка команд происходит, когда команда заключена следующим образом:
или
Bash выполняет расширение, выполняя команду в среде подоболочек и заменяя подстановку команды стандартным выводом команды, удаляя все завершающие символы новой строки. Введенные новые строки не удаляются, но они могут быть удалены во время разделения слов. Подстановка команд
$(cat file)
может быть заменена эквивалентной, но более быстрой$(< file)
.Амперсанд
&
- Фоновый процессА затем амперсанд, или
&
символ, как вы сказали, используется для запуска в фоновом режиме.источник
он принимает вывод команды как команду и запускает ее в фоновом режиме. Его функционально сравним с "Eval"
источник