とあるサンプルを見て$!(ダラーエクスクラメーション?ドルビックリマーク?)の意味がわからんくて小一時間意味を考えてわかったのでメモとして残します。
url=tcp://127.0.0.1:40899
./pair node0 $url & node0=$!
./pair node1 $url & node1=$!
sleep 3
kill $node0 $node1
↑の「& node0=$!」の意味がわからなかったのですが、
「ダラーエクスクラメーション」でググって一番最初に出てくるサイトに
ドル記号にエクスクラメーションマーク(びっくりマーク)を付加した$!は、バックグラウンドで最も直近に実行された最後のジョブのPIDを表し
とあったので
$ echo $!
と打ってみたのですが空行が返ってきただけでした。
なので今度は
url=tcp://127.0.0.1:40899
echo $!
./pair node0 $url & node0=$!
echo $!
./pair node1 $url & node1=$!
echo $!
sleep 3
kill $node0 $node1
↑のように間に「echo $!」を入れてみました。
するとちゃんと数値が返ってきました。
22467
22468
一番上は空行ですが、2番目と3番目は数値が返ってきています。
一番下の行ではこのpidを使ってkillを行っているんですね。
kill $node0 $node1
pidを引数に取るコマンド等使うときは便利ですね。
例えばwaitとか。もちろんkillも。
やっぱUnix環境使うならシェルもわかんないとダメですね。