예기치 않은 태그 'elif' 근처에 구문 오류가 있습니다.

예기치 않은 태그 'elif' 근처에 구문 오류가 있습니다.

7번째 줄에서 오류가 납니다. 어떤 아이디어가 있나요? 빈자리가 있는지 확인해봤는데 없더군요.

#!/bin/bash
if test $# -eq 0
then
    echo "No arguments"
elif test $# -eq 1
    echo "$1"
elif test $# -eq 2
    echo "$1 $2"
else
    echo "More than 2 arguments"
fi

답변1

if/elif/else/fi 구문에서는 then각 "elif" 뒤에 다음이 와야 합니다.

#!/bin/bash
if test "$#" -eq 0
then
    printf 'No arguments\n'
elif test "$#" -eq 1
then
    printf '%s\n' "$1"
elif test "$#" -eq 2
then
    printf '%s %s\n' "$1" "$2"
else
    printf 'More than 2 arguments\n'
fi

나 또한s 를 s echo로 바꾸세요printf그리고$# 인스턴스에 대한 참조.

답변2

then그 후에는 하나가 필요합니다 elif.

#!/bin/bash
if test $# -eq 0
then
    echo "No arguments"
elif test $# -eq 1
then
    echo "$1"
elif test $# -eq 2
then
    echo "$1 $2"
else
    echo "More than 2 arguments"
fi

관련 정보