다음 코드에서는 쉘 varibale을 awk에 전달하려고합니다. 그러나 그것을 a.sh foo_bar로 실행하려고하면 "foo is not declared"가 출력되고 a.sh bar_bar로 실행하면 "foo is declared"라는 출력이 출력됩니다. awk에 버그가 있습니까? 아니면 여기서 뭔가 잘못하고 있습니까?awk에서 쉘 변수를 잘못 해석했습니다.
gawk-3.0.3을 사용하고 있습니다.
#!/bin/awk
model=$1
awk ' {
match("'$model'", /foo/)
ismodel=substr("'$model'", RSTART, RLENGTH)
if ( ismodel != foo) {
print " foo is not declared"
} else {
print " foo is declared"
}
}
' dummy
더미는 하나의 빈 줄이있는 파일입니다.
감사합니다, 쉘에서 변수에 전달하는
감사합니다. 네가 말했던 것처럼 효과가있다. –