에 -z 무엇 :나는 다음과 같은 코드를 이해하려고 노력하고 bash는
나는 우리가-z "$1"
및 코드에서
"${3:-}"
무슨 뜻인지 이해 할
if [ -z "$1" ] || [ -z "$2" || [ "${3:-}" ]
then
echo "Usage: $0 <username> <password>" >&2
exit 1
fi
. 코드에 >&2
을 이해하도록 도와주세요.
에 -z 무엇 :나는 다음과 같은 코드를 이해하려고 노력하고 bash는
나는 우리가-z "$1"
및 코드에서
"${3:-}"
무슨 뜻인지 이해 할
if [ -z "$1" ] || [ -z "$2" || [ "${3:-}" ]
then
echo "Usage: $0 <username> <password>" >&2
exit 1
fi
. 코드에 >&2
을 이해하도록 도와주세요.
으로 전송된다는 의미입니다. 1) 코드가 올바르지 않으므로 ]
대괄호를 놓쳤습니다. 아마 [ -z "$2"
블록 이후.
2) if
문 명령 (들 다음 실행) 다음 명령 (들)의 반환 값이 true
경우 코드 블록이 then .. fi
또는 then .. else
키워드로 묶인 실행 (자신의 종료 코드가 0)
3) [
은 test
명령의 별칭 일뿐입니다 (시도 man test
). 이 명령은 여러 매개 변수를 사용하여 매개 변수를 평가합니다. 예를 들어, -z "$something"
플래그와 함께 사용하면 $something
이 설정되어 있지 않거나 빈 문자열 인 경우 true
(0)을 반환합니다. 그것을 시도 :
if [ -z "$variable" ]; then
echo Variable is not set or is an empty string
fi
4) ||
문이 OR
입니다. 이전 명령이 false
문을 리턴하면 다음 명령이 실행됩니다. 명령 [ -z "$variable2" ]
if [ -z "$variable" ] || [ -z "$variable2" ]; then
echo Variable 1 or variable 2 is not set or is an empty string
fi
문에서 실행 될 수 있도록 경우에만 variable
은 비어 있었다. 동일은 다른 문법을 달성 할 수있다 :
test
프로그램의 하나의 인스턴스 만 실행하기 위해 필요하기 때문에, 더 빠르게 처리 될 수
if [ -z "$variable" -o -z "$variable2" ]; then
echo Variable 1 or variable 2 is not set or is an empty string
fi
. variable
경우는/빈 설정되지 않은 또는 variable2
가/EMPTY 설정되지 않은
5) 문 "[ ${3:-} ]"
수단 스크립트의 true
$3
경우 (세 번째 인수를 반환 ... : 당신이 그것을 읽을 수 있도록 깃발 -o
는 OR
의미)가 설정됩니다.
6) >&2
은 스트림 리디렉션입니다. 모든 프로세스에는 표준 출력과 오류 출력의 두 가지 출력이 있습니다. 이들은 독립적이며 두 개의 서로 다른 파일에 기록 될 수 있습니다 (예를 들어). >&2
은 "표준 출력과 동일한 위치로 표준 출력을 리디렉션"하는 것을 의미합니다.
$1
또는
$2
비어 있거나
$3
작동하면
then .. fi
사이의 명령이 실행됩니다. 그렇지 않은 경우
echo
메시지가 표준 오류 출력에 인쇄됩니다.
-z STRING
은 the length of STRING is zero
을 의미합니다.
${parameter:-word}
매개 변수가 설정되지 않았거나 null 인 경우 단어 확장이 대체됩니다. $ 3에 값이 없으면 $ 3은 공백 값으로 설정됩니다.
&2
표준 오류에 씁니다. 내 말은 실행 된 명령의 stdout
값이 stderr
,
'도움말 테스트 | grep - "-z"' – Cyrus
감사합니다. 코드에서'[ "$ {3 : -}}"을 이해하도록 도와주세요. – stack4rme
'man bash' : *'$ {parameter : -word}': 기본값을 사용하십시오. 매개 변수가 설정되지 않았거나 널 (null)이면 단어 확장이 대체됩니다. 그렇지 않으면 매개 변수의 값이 대체됩니다. * – Cyrus