Answers:
给定语法$(command) &
,结果与您获得Just的输出command
然后尝试将其作为命令运行的结果相同。所有这些都将在后台完成,这意味着终端上将不会有可见的输出或悬挂。
例如,如果我们有一个名称mycommand.txt
为内容的文本文件:
echo "Hello World"
然后命令
$(cat mycommand.txt) &
相当于跑步
echo "Hello World" &
但是,由于我们添加了&符号(&
),因此看不到此命令的任何输出,因此在此示例中它几乎没有用。
$
(可变)括号中的事物之前的美元符号通常是指变量。这意味着该命令正在从bash脚本中将参数传递给该变量,或者正在获取该变量的值。bash脚本在调用和声明变量方面的区别如下:
声明一个变量不美元符号,并把它与一个美元符号。例如,包含以下内容的脚本
#!/bin/bash
STR="Hello World!"
echo $STR
会输出这个
Hello World!
()
-命令替换命令替换允许命令的输出替换命令本身。如下括起命令时,将发生命令替换:
$(command)
要么
`command`
Bash通过在子shell环境中执行命令并将命令替换替换为命令的标准输出来执行扩展,并删除所有尾随的换行符。嵌入的换行符不会被删除,但是可以在分词时将其删除。$(cat file)
可以用等效但更快的命令替换命令替换$(< file)
。
&
-后台过程然后&
,如您所说,“&”号或符号用于在后台运行它。
它将“命令”的输出作为命令并在后台运行。其功能与“评估”相当
$( )
,但没有休息。只是$(command) &
,这就是令我困惑的地方。