0
フラットファイルに基づいてテーブルを更新する簡単なスクリプトがありますが、有効でない書式設定された変数が追加されて問題が発生するため、bashスクリプトの変数書式チェック
#!/bin/bash
OLDIFS=$IFS
IFS=,
file1=file.csv
while read mac loc; do
dbaccess modemdb <<EndOfUpdate 2>/dev/null
UPDATE profile
SET localization= '$loc'
WHERE mac_address = '$mac';
EndOfUpdate
done <"$file1"
IFS=$OLDIFS
ファイルの内容はそのままです。
12:BF:20:1B:D3:22,RED-1234
12:BF:20:2D:FF:1B,BLUE-1234
12:BF:20:ED:74:0D,RED-9901
12:BF:20:02:69:7C,GREEN-4321
12:BF:20:02:6B:42,BROWN
12:BF:20:ED:74:0D,BLACK
$ macと$ loc変数の形式チェックを設定して、一致しない場合は実行を停止する方法があります。 $ locは任意の19桁にすることができるので、nullでなく、それ以上でないことを確認する必要があります。 macアドレスはnullでなく、ファイル内の形式である必要があります。私はこの小切手の別の投稿で参照を見つけましたが、どのように統合するかはわかりません。
`[[ "$MAC_ADDRESS" =~ "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$" ]]`
妥当性検査の作成方法のヘルプを検索しています。
おかげで、正規表現と
ありがとうございました! – cw2