이 "-n"은 무엇을 의미합니까? [딸꾹질]

이 "-n"은 무엇을 의미합니까? [딸꾹질]

다음 코드 예제를 살펴보십시오.

MIN=10

if [ -n "$1" ]; then echo "$1"; fi
if [ -n "$2" ]; then echo "$2"; fi 
if [ -n "$3" ]; then echo "$3"; fi
if [ -n "$4" ]; then echo "$4"; fi
if [ -n "$5" ]; then echo "$5"; fi
if [ -n "$6" ]; then echo "$6"; fi
if [ -n "$7" ]; then echo "$7"; fi
if [ -n "$8" ]; then echo "$8"; fi
if [ -n "$9" ]; then echo "$9"; fi
if [ -n "${10}" ]; then echo "${10}"; fi

echo "List of arguments: "$*"" 
echo "Name of this script: "$0""
if [ $# -lt "$MIN" ]; then echo "Not enough arguments, need $MIN to run."; fi

예를 들어 터미널 출력은 $./new.sh q w e r t y u i o p다음과 같습니다.

q
w
e
r
t
y
u
i
o
p
List of arguments: q w e r t y u i o p
Name of this script: ./new.sh

출력은 $./new.sh q w e r t y u i o다음과 같습니다:

q
w
e
r
t
y
u
i
o
List of arguments: q w e r t y u i o
Name of this script: ./new.sh
Not enough arguments, need 10 to run.

질문: 무슨 -n뜻인가요?

답변1

[내장 함수의 또 다른 이름입니다 test.여기그리고여기, 반품이것.

이 일련의 명령문은 if루프로 더 잘 작동할 수 있습니다. Bash에서는 간접 확장을 사용할 수 있습니다.

for ((i=1 ; i <= 10 ; i++)) ; do 
    if [ -n "${!i}" ] ; then 
        echo "${!i}"
    fi
done

더 일반적인 관용구는 shift모든 반복에서 사용하는 것이지만 그렇게 하면 인수 목록이 손상됩니다.

또한 $0여기 인용문 바깥에는 인용문이 있습니다. 대부분의 경우 명시적으로 원하지 않는 한 모든 변수 확장을 따옴표로 묶는 것이 더 유용합니다.분사및 파일 이름 확장자.

echo "Name of this script: "$0""

따라서 다음과 같이 작성하는 대신:

echo "Name of this script: $0"

관련 정보