다음 스크립트를 고려해보세요.
function alfa(bravo, charlie) {
if (charlie)
return "charlie good"
else {
return "charlie bad"
}
}
BEGIN {
print alfa(1, 1)
print alfa(1, 0)
print alfa(1, "")
print alfa(1)
}
결과:
charlie good
charlie bad
charlie bad
charlie bad
Awk에는 인수가 제공되지 않은 경우를 알 수 있는 방법이 있습니까?
답변1
예, 다음과 같이 할 수 있습니다.
function alfa(bravo, charlie) {
if (charlie) {
return "charlie good"
}
if (charlie == 0 && charlie == "") {
return "charlie not provided"
}
if (!charlie && charlie != 0) {
return "charlie null"
}
if (!charlie && charlie != "") {
return "charlie 0"
}
}
결과:
charlie good
charlie 0
charlie null
charlie not provided
답변2
awk
변수가 초기화되었는지 확인하는 기본 제공 방법이 없습니다. 직접 수행해야 합니다.
function alfa(bravo, charlie) {
if (charlie == 0 && !length(charlie))
return "charlie bad"
else {
return "charlie good"
}
}
BEGIN {
print alfa(1, 1)
print alfa(1, 0)
print alfa(1, "")
print alfa(1)
}
일반적인 방법:
var == 0 && !length(var)
초기화되지 않은 변수 및 0 원인은 var == 0
true로 평가되며, !length(var)
경우는 제외됩니다 var = 0
.