나는 책을 읽고 있습니다리눅스 명령줄섹션 27에서는 쉘 스크립트 작성 방법을 가르쳐줍니다.파일 표현부분에서는 다음과 같이 말합니다.
스크립트는 상수 FILE에 할당된 파일을 평가하고 평가가 수행될 때 그 결과를 표시합니다. 이 스크립트에 대해 주목해야 할 두 가지 흥미로운 사항이 있습니다. 먼저 $FILE 매개변수가 표현식에서 어떻게 참조되는지 살펴보세요. 이는 필수는 아니지만 매개변수가 비어 있는 것을 방지합니다. $FILE의 매개변수 확장으로 인해 널값이 발생하면 오류가 발생합니다(연산자는 연산자 대신 비어 있지 않은 문자열로 해석됩니다).
"연산자는 연산자 대신 비어 있지 않은 문자열로 해석됩니다"라는 내용을 이해하지 못합니다. 누군가 나에게 예를 들어 줄 수 있습니까? 감사해요.
원래 코드는 다음과 같습니다.
#!/bin/bash
# test-file: Evaluate the status of a file
FILE=~/.bashrc
if [ -e "$FILE" ]; then
if [ -f "$FILE" ]; then
echo "$FILE is a regular file."
fi
if [ -d "$FILE" ]; then
echo "$FILE is a directory."
fi
if [ -r "$FILE" ]; then
echo "$FILE is readable."
fi
if [ -w "$FILE" ]; then
echo "$FILE is writable."
fi
if [ -x "$FILE" ]; then
echo "$FILE is executable/searchable."
fi
else
echo "$FILE does not exist"
exit 1
fi
exit
답변1
값이 $FILE
빈 문자열이고 인용하지 않으면 $FILE
콘텐츠는 if [ -e $FILE ]; then
가 됩니다 if [ -e ]; then
. 이 명령의 규칙은 [
와 사이에 값이 하나만 있는 경우 값이 빈 문자열이 아니면 true가 되고 빈 문자열이면 false가 됩니다(그래서 가져옵니다).[
]
if [ "" ]; then
else
참고로 if [ -e "$FILE" ]; then
가 되고 if [ -e "" ]; then
그 [
사이에는 2개의 값이 있으므로 ]
다른 규칙이 적용됩니다.