관리자가 아닌 사용자로 우분투에서 awk 스크립트를 작성하려고합니다. 4 개의 터미널 문을 사용하여 변수에 던집니다. 그런 다음 그 변수는 내가 만든 함수로 보내지고 평균 숫자를 뱉어 내고 인쇄합니다.
내 스크립트는 다음과 같습니다.
#!/usr/bin/gawk -f
BEGIN{
one = ARGV[1];
two = ARGV[2];
three = ARGV[3];
four = ARGV[4];
function average_funct(one, two, three, four)
{
total = one + two;
total = total + three;
total = total + four;
average = total / 4;
return average;
}
print("The average of these numbers is " average_funct(one, two, three, four));
}
그것을 실행하기 위해 나는 이것을 사용하고 있습니다.
./myaverage4 2 7 4 3
다음과 같은 오류 메시지가 나타납니다.
gawk: ./myaverage4:9: function average_funct(one, two, three, four)
gawk: ./myaverage4:9: ^ syntax error
gawk: ./myaverage4:15: return average;
gawk: ./myaverage4:15: ^ `return' used outside function context
누군가가 굉장한 문제를 파악하도록 도울 수 있다면.
BEGIN 섹션이나 다른 액션 블록 안에 함수를 선언 할 수 없습니다. 모든 액션 블록 밖으로 이동합니다.
function foo() { ... }
BEGIN { foo() }
나는 당신이 당신이 한 방식으로 코드를 작성해야 할 이유가 있다고 가정합니다.
function average_funct(arr, total, cnt)
{
for (cnt=1; cnt in arr; cnt++) {
total += arr[cnt]
}
return (--cnt ? total / cnt : 0)
}
BEGIN {
print "The average of these numbers is", average_funct(ARGV)
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다