我正在尝试使用 xargs 为每个提供的参数运行一个命令,但不幸的是 --replace/-I 标志在与 -n 结合时似乎无法正常工作。无论 -n 选项如何,{} 似乎都将扩展为从 stdin 读取的完整参数列表。
不幸的是,网络上的所有示例似乎都是用于命令 (mv, cp, rm) 的,这些命令将采用多个参数,其中 {} 展开。
例如,在运行时:
echo a b c d | xargs -n 1 -I {} echo derp {}
Run Code Online (Sandbox Code Playgroud)
输出是:
derp a b c d
Run Code Online (Sandbox Code Playgroud)
但我预计:
derp a
derp b
derp c
derp d
Run Code Online (Sandbox Code Playgroud)
但是,在没有 -I {} 的情况下运行它会产生预期的结果:
echo a b c d | xargs -n 1 echo derp
derp a
derp b
derp c
derp d
Run Code Online (Sandbox Code Playgroud)
有没有办法用 xargs 实现这一点?我的最终目的是用它来运行多个(并行)ssh 会话,比如
echo server{1..90} | xargs …Run Code Online (Sandbox Code Playgroud) 我广泛使用 Firefox 来访问无数的 Web 应用程序并对其进行故障排除,其中许多应用程序运行在 apache 虚拟主机环境中。
我一直遇到的一个问题是,在启用 SSL 的服务器上,我无法覆盖主机名来访问正确的虚拟主机。
通过 HTTP,人们可以访问一个 IP 地址,http://1.2.3.4/page.html并伪造host:具有不同值的标头来访问不同的虚拟主机。
例如,这些是等效的:
http://my.virtualhost.example.comhttp://1.2.3.4与标题host: my.virtualhost.example.com。对于 HTTPS,这变得不可能,因为在建立 TLS 连接之前必须知道主机名,因此 apache 无法知道要服务哪个 SSL 虚拟主机。
解决方法是覆盖TLS 请求中的服务器名称指示ClientHello(SNI) 字段。
有什么方法可以使用 Firefox 插件或扩展来覆盖 SNI 值吗?
我在 Windows 7 上使用 Firefox 40。