2011-05-08 4 views
24

쉘 스크립트에서 ~ (틸드) 대신 변수 $HOME을 사용해야하는 이유가 있습니까?

답변

31

틸드 확장은 /foo/bar:~/baz

+0

작동하지 않는 다른 예제는 @no_allotment로 스크롤하십시오. – H2ONaCl

11

양도 및 $HOME의 균일 성처럼 문자열의 중간에 같은 일부 상황에서는 작동하지 않습니다. 물결표는 타이핑 바로 가기입니다.

+1

그래서 물결표가 $ HOME과 동의어가 아닌 셸이나 시스템이 있다는 것을 이해하는 것이 맞습니까? – mybuddymichael

+5

@Michael 예, Solaris 10의 기본'sh'는'$ HOME'으로 물결표를 처리하지 않으며'~ username'도 확장하지 않습니다. – evolvah

6

오늘 물결표 확장이 큰 따옴표 ("")에서 작동하지 않습니다.

zsh을에서

(미안 해요 다른 쉘의 동작을 확인하지 않았다.),

큰 따옴표 ("") 내부 매개 변수 및 명령 대체

틸드 확장이 입니다 발생 파일 이름 확장, 그래서 그것은 큰 따옴표 안에 실패합니다.
$HOME매개 변수 대체이며 큰 따옴표 안에 확장 할 수 있습니다.
$HOME은 안전한 방법입니다.

관련 문제