Bash 스크립트 변수 구문: 일부 명령에는 유효하지만 다른 명령에는 유효하지 않음

Bash 스크립트 변수 구문: 일부 명령에는 유효하지만 다른 명령에는 유효하지 않음

이 변수의 동작을 이해하지 못합니다.

SSH_CONFIG_FILE="~/.ssh/config"
echo $SSH_CONFIG_FILE
ls -l $SSH_CONFIG_FILE
ls -l ~/.ssh/config

출력은 다음과 같습니다.

~/.ssh/config
ls: cannot access '~/.ssh/config': No such file or directory
-rw------- 1 pm domain^users 1229 Sep 19 10:52 /home/pm/.ssh/config

echo$ 기호를 사용하면 작동하지만 작동 하지 않는 이유는 무엇 입니까 ls?

변수를 "", '', ``, {}, []로 둘러싸려고 했지만 개선되지 않았습니다.

답변1

~쉘을 집으로 확장하려면 물결표 주위에 따옴표를 넣지 마십시오.

SSH_CONFIG_FILE=~/.ssh/config

공간이 있다면 그렇게 하세요.

var=~/'foo bar/file'

물결표 주위에 따옴표를 배치하면 쉘이 물결표를 처리하기 위해 확장하는 것을 방지할 수 있습니다.문자 그대로.

관련 정보