以下にこの出力があり、それをJSON API形式に変換したいと思います。どうすればいいのか知りたいです。
rock64@rockpro64:~$ sh MACscript.sh
eth0
11:1d:11:11:11:1d
lo
00:00:00:00:00:00
Pythonスクリプトを使用する必要がありますか、それともシェルスクリプトを使用して実行できますか?
これは私のMACshellスクリプトです。
rock64@rockpro64:~$ cat MACscript.sh
!/bin/bash
getmacifup.sh: Print active NICs MAC addresses
D='/sys/class/net'
for nic in $( ls $D )
do
echo $nic
if grep -q unknown $D/$nic/operstate
then
echo -n ' '
cat $D/$nic/address
fi
done
ベストアンサー1
通常のbashを使用すると、次のようにできます。
json=$(
sh MACscript.sh | {
pairs=()
while read interface; read ether; do
pairs+=("\"$interface\":\"$ether\"")
done
IFS=,
echo "{${pairs[*]}}"
}
)
echo "$json"
出力
{"eth0":"11:1d:11:11:11:1d","lo":"00:00:00:00:00:00"}