外部IPアドレスをエコーする単純なbash関数を検索しているときに、 この投稿 に遭遇しました。これには次の例があります。
_function ext-ip () { curl http://ipecho.net/plain; echo; }
_
このコンテキストでecho
がどのように機能するのか疑問に思います。 curl
もecho
のマンページもあまり役に立ちませんでした。前のcurl
コマンドの応答本文をエコーするのはなぜですか?そして、例えば、この方法とは対照的に、この方法で行うことに利点はありますか? echo "$(curl -s http://ipecho.net/plain)"
?後者の構文はより透過的/単純に見えるので、私は尋ねているだけです。
前の
curl
コマンドの応答本文をエコーするのはなぜですか?
古典的な質問の誤謬。
それはそのようなことをしません。 curl
コマンドは、末尾に改行を付けずにIPアドレスを出力します。 echo
コマンドは改行を提供します。とても簡単です。
かどうか
_echo "$(curl -s http://ipecho.net/plain)"
_
よりも簡単です
_curl http://ipecho.net/plain ; echo
_
ある程度好みの問題です。ただし、$()
はBourne(Bourne Againと混同しないでください)シェルでもCシェルでも使用できないのに対し、ほとんどすべてのシェルは2つのプレーンコマンドを順番に分離して実行できることに注意してください。セミコロンで。これには、csh
とfish
も含まれます。 ☺