その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

シェルスクリプトで空きポートを取ってきたいという時

kazuho さんのこれをシェルスクリプトでやりたいというお話です.

kazuhooku.hatenadiary.org

こんな感じ:

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 を使えば良い気もします.以上です.