if else 문: 변수에 저장된 경로가 존재하는지 확인하세요. [닫기]

if else 문: 변수에 저장된 경로가 존재하는지 확인하세요. [닫기]

내 스크립트의 if 문에 문제가 있습니다. 변수에 경로가 저장되어 있고 if...else 문을 사용하여 변수 경로에 파일(file1)이 있는지 확인하고 싶습니다. 이것은 내 코드입니다.

variable=$/home/username/file1

if [ -f "${variable}" ]
then
    echo "$variable exists"
    exit
else
    echo "file not found"
    exit
fi

나는 또한 이것을 시도했지만 [ -f "$variable" ]모든 경우에 두 명령문이 모두 실행되었습니다. 내가 받은 출력은 다음과 같습니다.

/home/username/file1 exists
file not found

가장 큰 문제는 명령 자체가 작동하지 않는다는 것입니다. 그런데 첫 번째 종료 명령 후에도 종료되지 않는 이유는 무엇입니까? 내가 보지 못하는 큰 실수는 어디에 있는가?

답변1

스크립트의 문제는 첫 번째 줄에 있습니다.

변수에 경로를 할당하려면 변수를 문자열로 처리하면 됩니다.

variable="/home/username/file1"

아니면 이것도:

variable=/home/username/file1

그렇다면 괜찮습니다.


명령의 출력을 변수에 할당하려면 $ 기호가 필요합니다.

OUTPUT="$(ls -1)"

관련 정보