$( ... )はシェルで何を意味しますか? [コピー]

$( ... )はシェルで何を意味しますか? [コピー]

ドル記号とは何か分かりません。特にこの文脈では:

for url in  $(cat   example.txt);   do  host    $url;   

ベストアンサー1

バッシュリファレンスマニュアル バッシュマニュアル

3.2.4.3 グループ化コマンド

Bash は、実行するコマンドのリストを 1 つの単位にグループ化する 2 つの方法を提供します。命令をグループ化すると、命令の全リストにリダイレクトを適用できます。たとえば、リスト内のすべてのコマンドの出力を単一のストリームにリダイレクトできます。

()

( list )

括弧内にコマンドリストを配置すると、サブシェル環境(コマンド実行環境を参照)が生成され、リスト内の各コマンドがサブシェルで実行されます。リストはサブシェルで実行されるため、サブシェルが完了した後に変数の割り当てが無効になります。

これは以下とは異なります$

3.5.4 コマンドの置換

コマンド置換を使用すると、コマンド出力がコマンド自体を置き換えることができます。コマンド置換は、コマンドが次のように括弧で囲まれている場合に発生します。

$(command)

3.2.4.1 ループ構造

for

for コマンドの構文は次のとおりです。

for name [ [in [words …] ] ; ] do commands; done

単語を展開し、現在のメンバーにバインドされている名前を使用して、結果リストの各メンバーに対してコマンドを1回ずつ実行します。 'in Words'がない場合、forコマンドは 'in "$@"'が指定されているように設定された各位置引数に対して1回実行されます(特殊パラメータを参照)。戻り状態は、最後に実行されたコマンドの終了状態です。拡張という単語にエントリがない場合、コマンドは実行されず、戻り状態はゼロです。

example.txt に次のコンテンツが含まれているとします。

www.google.com
www.youtube.com
www.facebook.com

あなたのコマンドは次のことを行います。

url=www.google.com
host www.google.com

url=www.youtube.com
host www.youtube.com

url=www.facebook.com
host www.facebook.com

hostURL の IP アドレスを返すコマンドです。

おすすめ記事