bash 스크립트 관련 질문드립니다.
글쓴이: kr3939 / 작성시간: 토, 2019/03/09 - 11:35오전
안녕하세요 bash 스크립트를 짜던도중 궁금한점이 있어서 질문드립니다.
1.
if 문에서 간혹
[ "x${변수}" = "a" ] 라거나
[ "a${변수}" = "x" ] 같은 변수의 앞단에 알파벳을 붙이는 경우가 있는데 이 경우 어떻게 동작을 하는 것인지 뭐가 다른것인지.
2.
awk '{ i=1; while(i<=NF) { print $i; i++; } }'
위 커맨드에서 NF가 의미하는것과 print로 뭐가 출력되는 것인지.
도움 부탁드립니다 ㅠ
Forums:
1. bash 의 test 구문에서 변수에 값이 없을
1. bash 의 test 구문에서 변수에 값이 없을 경우 syntax error 가 발생 합니다. 예를 들어 아래의 코드에서
$a 값이 없을 경우, 는
와 동일하게 해석이 되게 됩니다. 이코드가 에러가 발생하는 이유는 "[" 가 bash 문법이 아니라 shell command 이기 때문 입니다. /bin/[ 인것이죠.
즉, [ 는 argument가 2개가 있어야 하고 마지막에 ']' 로 끝나야 하는 명령어 인 것입니다. 그러므로 변수값이 빈값이 되면 3개가 넘어가야할 argument가 2개 밖에 넘어가지 않아 에러가 발생 하는 것이니다. 그래서 이 에러를 방지 하기위해서 사용하는 방식이 아래와 같은 것입니다.
2번은 "awk NF" 로 검색만 해 보셔도 무수하게 많이 나옵니다. NF는 마지막 필드 번호 또는 총 필드 수를 의미합니다.
댓글 달기