シェルスクリプトで空きポートを取ってきたいという時
kazuho さんのこれをシェルスクリプトでやりたいというお話です.
こんな感じ:
nc -l 0 & NC_PID=$! lsof -n -P -p $NC_PID | grep TCP | awk '{print $9}' | awk -F ':' '{print $2}' kill $NC_PID
nc で ephemeral port を listen して (-l 0
),その nc の PID をもとに実際に listen しているポートを引っ張ってくるというシンプルな感じです.
特別な理由がなければ Net::EmptyPort を使えば良い気もします.以上です.