(참고 : 더 많은 연구를 한 후에 부분 답변이 있지만 포함 된 공간에 따라 변수에 대해 실제 명령을 다르게 작성하는 것을 좋아하지 않습니다. 더 나은 제안을 받아 들일 것입니다) .
나는 무언가를 작업하면서 다양한 작업 변수를 bash에 저장하는 것을 좋아합니다. 이렇게하면 매번 입력하지 않아도되며 나중에 다시 작업 할 때 도움이됩니다 ( localprofile.sh 파일에 할당 한 source
후 나중에 ...).
공백이있는 디렉토리 이름을 저장하고 싶습니다. 따옴표 또는 \ 기반 이스케이프를 사용하여 대화 형으로 파일 / 디렉토리 이름의 공백을 처리하는 방법을 알고 있습니다.
$ ls -1 /Users/myuser/Library/Application\ Support/ | tail -5
iTerm2
icdd
org.videolan.vlc
pip
videosubscriptionsd
또는
$ ls -1 "/Users/myuser/Library/Application Support/" | tail -5
iTerm2
icdd
org.videolan.vlc
pip
videosubscriptionsd
이제 해당 디렉토리를 bash $ dn 변수 에 할당하고 싶지만 제대로 작동하지 않습니다.
여러 가지 시도가 있습니다. 의도적으로 ~ 기반 쉘 확장을 피했습니다.
dn='/Users/myuser/Library/Application Support/'
echo ''
echo ''
echo $dn
ls -1 $dn
dn='"/Users/myuser/Library/Application Support/"'
echo ''
echo ''
echo $dn
ls -1 $dn
dn=/Users/myuser/Library/Application\ Support/
echo ''
echo ''
echo $dn
ls -1 $dn
dn="/Users/myuser/Library/Application\ Support/"
echo ''
echo ''
echo $dn
ls -1 $dn
이들 각각은 변형을 보여줍니다 ls: /Users/myuser/Library/Application\: No such file or directory
""
하십시오.