이`-n`은 무엇을 의미합니까? [BASH]

다음 코드 샘플을 참조하십시오.

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 

및 는 다음과 같습니다.

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는 무엇을 의미합니까?

댓글

답변

[test 내장의 또 다른 이름입니다. 여기 여기 , this 도 있습니다.

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" 

댓글

  • 함수 내에서 shift를 사용할 수 있으며 호출자 '의 인수 목록에 영향을주지 않지만 함수를 사용하는 것은 분명히 약간입니다. hackish.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다