다음 코드 예제를 살펴보십시오.
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"