3ch*_*eel 3 linux bash command-line echo
在搜索一个简单的 bash 函数来回显我的外部 IP 地址时,我遇到了这篇文章,其中包含以下示例:
function ext-ip () { curl http://ipecho.net/plain; echo; }
Run Code Online (Sandbox Code Playgroud)
我想知道echo在这种情况下是如何工作的;手册页curl和echo联机帮助页都不是很有帮助。为什么它会回显上一个curl命令的响应体?与例如相比,以这种方式做有什么好处echo "$(curl -s http://ipecho.net/plain)"吗?我只是问,因为后者的语法似乎更透明/直截了当。
为什么它会回显上一个
curl命令的响应体?
一个经典的加载问题。
它不会做任何这样的事情。该curl命令输出一个没有尾随换行符的 IP 地址。该echo命令提供换行符。就这么简单。
无论
echo "$(curl -s http://ipecho.net/plain)"
Run Code Online (Sandbox Code Playgroud)
比
curl http://ipecho.net/plain ; echo
Run Code Online (Sandbox Code Playgroud)
在某种程度上是品味问题。然而,值得注意的是,这$()在 Bourne(不要与 Bourne Again)shell 和 C shell 中都不可用,而几乎所有 shell 都可以按顺序执行两个由分号分隔的普通命令。这甚至包括csh和fish。☺
| 归档时间: |
|
| 查看次数: |
3029 次 |
| 最近记录: |