저장된 변수 문자열에서 폴더 이름을 가져오려고 합니다. 다음 명령을 실행할 때
path="Folder%20Name/Dir/File"
read -d "/" folder < <(echo ${path/\%20/ })
echo "$folder"
나는 공백을 얻습니다 echo $folder
. 내가 어디서 잘못됐나요? 시도했지만 read -d "/" folder <<< $"(${path/\%20/ })"
성공하지 못했습니다.
답변1
첫 번째 명령은 Bash 4.4에서 잘 실행됩니다.
$ path="Folder%20Name/Dir/File"
$ read -d "/" folder < <(echo ${path/\%20/ })
$ echo "$folder"
Folder Name
여기서 프로세스 대체를 사용할 필요는 없지만 다음 문자열을 사용할 수 있습니다.
$ read -d "/" folder <<< "${path/\%20/ }"
두 번째 명령의 경우 $"..."
여기에는 필요하지 않은 지역화된 인용을 사용하고 있으며 대괄호도 문자열에 추가되므로 (Folder Name
변수에 대해 이 작업을 수행하면 얻을 수 있습니다 path
.
(그런데 Zsh를 사용하기 시작하면 Zsh를 path
변수 이름으로 사용하지 마세요.)