Closed dynamis closed 5 years ago
wifi 設定が複数されていないケースが多かったのを不審に思いコード見たのですが、単なる while read $line ループしているので行末に改行文字がない行が無視されます (read は改行含まないと false 返します)。
https://github.com/webdino/pizero-workshop/blob/master/setup.sh#L84
memo: バグのあるコード (手元の mac での試験用に単純化)
cat wifi.txt | while read _LINE; do if echo $_LINE | grep -q '^\s*$'; then continue; fi #skip empty line echo $_LINE | awk -F ',' '{print "wpa_passphrase \"" $1 "\" \"" $2 "\""}' priority=$(( $priority + 1 )) done
意図したとおりに動く例:
cat wifi.txt | while read _LINE || [ -n "${_LINE}" ]; do if echo $_LINE | grep -q '^\s*$'; then continue; fi #skip empty line echo $_LINE | awk -F ',' '{print "wpa_passphrase \"" $1 "\" \"" $2 "\""}' priority=$(( $priority + 1 )) done
入力テストファイルと関数呼び出しの結果のテストコードが必要と言いたいところですが、ひとまずバグは修正しましょう。テスト入力ファイルは末尾改行自動付与しないエディタで作って下さいね。
もちろん、wpa_supplicant 編集コードだけでなくフォーマット確認も同じく、その他の read しているコードも同じくです。
jsに移行したためクローズ https://webdino.github.io/pizero-workshop/ForDevelopers/pizero-workshopForDevelopers.html https://webdino.github.io/pizero-workshop/Workshop.html
wifi 設定が複数されていないケースが多かったのを不審に思いコード見たのですが、単なる while read $line ループしているので行末に改行文字がない行が無視されます (read は改行含まないと false 返します)。
https://github.com/webdino/pizero-workshop/blob/master/setup.sh#L84
memo: バグのあるコード (手元の mac での試験用に単純化)
意図したとおりに動く例:
入力テストファイルと関数呼び出しの結果のテストコードが必要と言いたいところですが、ひとまずバグは修正しましょう。テスト入力ファイルは末尾改行自動付与しないエディタで作って下さいね。
もちろん、wpa_supplicant 編集コードだけでなくフォーマット確認も同じく、その他の read しているコードも同じくです。