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