
일부 프로그램은 파일 이름의 물결표 단축키를 인식하지 못하고 전체 표준 경로(예 /home/dave/myfile.txt
: ~/myfile.txt
.
물결표가 사용될 때마다 bash를 교체 ~
하고 전체 표준 경로로 만들 수 있는 방법이 있습니까 ?~user
답변1
글쎄, Perl에 대해서는 잘 모르겠지만 bash 스크립트에서는 eval을 사용하여 해당 변환을 수행할 수 있습니다.
eval dir='~user/somedir'
$dir에는 전체 경로, 즉 이 시점에서 /home/user/somedir이 포함됩니다.
답변2
Bash 셸에서 다음과 같은 명령을 실행할 때:
command ~/myfile.txt
쉘은 먼저 (인용되지 않는 한) 확장을 한 ~
다음 결과와 함께 명령을 실행합니다.
그러나 일부 프로그램은 를 해석하지 않습니다 ~
. 예를 들면 다음과 같습니다.
$ cat "~/myfile.txt"
~/myfile.txt: No such file or directory
하지만 이것은 다음과 같이 작동합니다.
nano "~/myfile.txt"
하지만 이 동작은 Bash 확장에 의해 가려져 있으므로더 이상의 해석은 필요하지 않습니다.
어쩌면 당연할 수도 있지만 프로그램이 구성 파일을 사용하고 그 안에 일부 경로가 필요한 경우 해당 파일을 확장하는 것은 Bash 의무가 아닙니다.