Hac*_*erN 2 shell bash shell-script
我不明白美元符号有什么作用。特别是在这种情况下:
for url in $(cat example.txt); do host $url;
Run Code Online (Sandbox Code Playgroud)
Bash 参考手册 Bash 手册
3.2.4.3 分组命令
Bash 提供了两种方法来将要作为一个单元执行的命令列表进行分组。当命令被分组时,重定向可以应用于整个命令列表。例如,列表中所有命令的输出可能被重定向到单个流。
()
( list )
将命令列表放在括号之间会导致创建子 shell 环境(请参阅命令执行环境),并且列表中的每个命令都将在该子 shell 中执行。由于列表是在子shell 中执行的,因此子shell 完成后变量赋值不再有效。
这与 the 不同,
$因为它随后成为命令替换:
3.5.4 命令替换
命令替换允许命令的输出替换命令本身。当一个命令被如下包围时,会发生命令替换:
$(command)
3.2.4.1 循环结构
for
for 命令的语法是:
for name [ [in [words …] ] ; ] do commands; done
展开词,并对结果列表中的每个成员执行一次命令,名称绑定到当前成员。如果 'in words' 不存在,则 for 命令为每个设置的位置参数执行一次命令,就好像已经指定了 'in "$@"'(参见特殊参数)。返回状态是执行的最后一个命令的退出状态。如果字的扩展中没有项,则不执行任何命令,返回状态为零。
假设您的 example.txt 包含以下内容:
www.google.com
www.youtube.com
www.facebook.com
Run Code Online (Sandbox Code Playgroud)
您的命令将执行以下操作:
url=www.google.com
host www.google.com
url=www.youtube.com
host www.youtube.com
url=www.facebook.com
host www.facebook.com
Run Code Online (Sandbox Code Playgroud)
host 是返回 URL 的 IP 地址的命令。
| 归档时间: |
|
| 查看次数: |
16877 次 |
| 最近记录: |