【发布时间】:2018-01-26 17:55:52
【问题描述】:
我在 Linux 终端中运行以下命令。谁能告诉我在 Linux 终端和以下命令中括号的用途是什么?
$(echo "GET / HTTP/1.0";echo "主机:www.google.com"; echo) | nc www.google.com 80
【问题讨论】:
标签: linux terminal ubuntu-server
我在 Linux 终端中运行以下命令。谁能告诉我在 Linux 终端和以下命令中括号的用途是什么?
$(echo "GET / HTTP/1.0";echo "主机:www.google.com"; echo) | nc www.google.com 80
【问题讨论】:
标签: linux terminal ubuntu-server
( list )
在括号之间放置一个命令列表会导致创建一个子shell环境,并且列表中的每个命令都将在该子shell中执行。由于列表是在子 shell 中执行的,因此在子 shell 完成后变量赋值不会保持有效。
【讨论】:
cd 命令,都本地化到子shell 的上下文,并在退出子shell 时消失。
括号表示 bash 中的子 shell。在您的命令中, $() 是命令替换,如果它像 () 是子shell。它们都运行命令,不同之处在于输出发生了什么。
【讨论】: