2013-07-25 3 views
0

bash에서 변수의 경로를 가져올 수 없습니다. 그것은 어떻게 올바른가? 예를 들어 :변수 Bash에서 경로를 가져 오는 방법

[email protected]:~$ a="~/.bashrc" 
[email protected]:~$ cat $a 
cat: ~/.bashrc: No such file or directory 

작동하지 않았다, 그러나

cat .bashrc 

cat ".bashrc" 

작품을 잘.


다음은 문제에 대한 이유는 물결이 쉘이 홈 디렉토리로 확장된다는 점이다 fedorqui

cat $(eval echo $a) 
+2

'cat $ (eval echo $ a)' – fedorqui

+2

'eval'을 * 추천하지 않을 수 있습니다. – chepner

답변

3

에서 정답이다. 변수에 저장하면 물결표가 확장되지 않고 cat은 ~ (홈 디렉토리가 아닌) 폴더에서 .bashrc 파일을 찾습니다.

두 가지 방법으로 문제가 제안됩니다 : 제안 된 평가 및 사용 $ HOME :

+3

'a = ~/".bashrc"'또는 심지어'a = ~/.bashrc'를 사용할 수도 있습니다 -'~'가 확장 될 따옴표 밖에있는 한 ('$ variable'과 달리, 큰 따옴표 안에서도 확장됩니다). –

관련 문제