별칭 매개 변수 인쇄와 함께 zsh에서 scp 또는 echo를 사용하면 '해당 파일 또는 디렉토리가 없습니다'

별칭 매개 변수 인쇄와 함께 zsh에서 scp 또는 echo를 사용하면 '해당 파일 또는 디렉토리가 없습니다'

여기 MacOSX에서는 zsh가 있습니다.

나는 따옴표 유무, 작은 따옴표 또는 큰 따옴표, 대괄호 유무, $변수 유무 등 여러 가지 방법을 시도했음을 지적하고 싶습니다. 하지만 '해당 파일이나 디렉토리가 없습니다'라는 메시지를 받은 적이 있습니다.

내 ~/.zshrc 파일 별칭 섹션 줄이 있습니다.

alias cpsos='source="${1}"; destination="${2}"; scp -i ~/.ssh/id_sos "${source}" __USERNAME__@__SERVER__:"${destination}"'

터미널에 있을 때

% cpsos "/Users/sos/dev/g/qrcode/net.png" "/home/sos/webapps/demo/frontend/static/"

나는 받는다 /home/sos/webapps/demo/frontend/static/: No such file or directory

또한 디버그를 수행하고 몇 가지 트릭을 사용하여 오류가 무엇인지 이해하기 위해 간단한 에코를 시도했습니다. 여기 또 다른 ~/.zshrc 줄이 있습니다.

# Automatically quote globs in URL and remote references
__remote_commands=(scp rsync)
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
zstyle -e :urlglobber url-other-schema '[[ $__remote_commands[(i)$words[1]] -le ${#__remote_commands} ]] && reply=("*") || reply=(http https ftp)'
alias scp='noglob scp'
alias echosos='source="${1}"; destination="${2}"; echo "Source: ${source}" ; sleep 1; echo "Destination: ${destination}";'

그런 다음 터미널에서

% echosos "/Users/sos/dev/g/qrcode/net.png" "/home/sos/webapps/demo/frontend/static/"

회신하다

Source: Destination: zsh: permission denied: /Users/sos/dev/g/qrcode/net.png

항상 "해당 파일 또는 디렉터리가 없습니다" 또는 "권한이 거부되었습니다"를 얻습니다. 무슨 일이야?

과거에 이러한 유형의 문제에 직면했고 별칭 기능을 완전히 사용하지 못하게 만드는 매우 성가신 오작동의 이유를 아는 사람이 있습니까? 간단한 bashrc에서는 이런 일이 발생하지 않았으며 이 쉘을 기본값으로 되돌릴 것을 진지하게 생각하고 있습니다.

주목 해 주셔서 감사합니다.

관련 정보