0
플랫 파일을 기반으로 테이블을 업데이트하는 간단한 간단한 스크립트가 있지만 유효하지 않은 형식화 된 변수가 추가되고 목록이 길어지면 문제가 발생할 수 있으므로 concerend입니다.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