シェルを使ってifconfigの「eth0」の部分だけを取得
プログラム内でネットワークデバイス(インターフェース)名を使用したい.
Ubuntu 14.04 LTSまでは有線はeth0を指定してあげれば良かったが,Ubuntu 15.10からは名前がenp2s0のような名前に変更されるので,シェルでその部分だけを取得しようと思う.
ifconfig | awk '{print $1}' | awk NR==1
だけで良い.
ifconfigで出力されたものを,awkで1列目だけを表示.その後awkで1行目を指定すれば出来る.
ただ,VM環境などのせいで有線の前にvmnetとかが入っている場合は,grep -vとかで弾けばいいんじゃないかと思う.
CentOSでifconfigを行うと,
enp2s0:
という感じに,最後にコロンが付いてしまうので,これもシェルで取ってしまう.
ifconfig | awk '{print $1}' | awk NR==1 | sed -e "s/:/\ /g"
基本的にはUbuntuでもこのコマンドを使用してやれば,エラーは吐かれないので,Ubuntu,Cent問わずシェルを実行する事ができる.