Verwenden von scp oder echo in zsh mit Alias-Parameter print 'Keine solche Datei oder kein solches Verzeichnis'

Verwenden von scp oder echo in zsh mit Alias-Parameter print 'Keine solche Datei oder kein solches Verzeichnis'

hier zsh auf MacOSX.

Ich möchte darauf hinweisen, dass ich es auf verschiedene Arten versucht habe, mit und ohne Anführungszeichen, einfache oder doppelte Anführungszeichen, mit und ohne Klammern, mit/ohne $variables. Aber ich erhalte immer die Meldung „Keine solche Datei oder kein solches Verzeichnis“.

Es gibt eine Zeile in meinem Abschnitt mit den Dateialiasen ~/.zshrc.

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

Im Terminal verwende ich

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

ich erhalte /home/sos/webapps/demo/frontend/static/: No such file or directory

Ich habe auch versucht, mit einem einfachen Echo etwas zu debuggen und herauszufinden, was der Fehler ist, und dabei einen Trick verwendet. Hier einige weitere ~/.zshrc-Zeilen

# 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}";'

Dann auf Terminal

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

Antwort

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

Es wird immer die Meldung „Keine solche Datei oder kein solches Verzeichnis“ oder „Zugriff verweigert“ angezeigt. Was ist passiert?

Ist jemand in der Vergangenheit auf dieses Problem gestoßen und kennt die Gründe für diese sehr ärgerliche Fehlfunktion, die einen dazu zwingt, die volle Nutzung der Alias-Funktionalität aufzugeben? In einfachem Bashrc ist dies nicht passiert und ich denke ernsthaft darüber nach, zu dieser Shell als Standard zurückzukehren.

Dank für Ihre Aufmerksamkeit.

verwandte Informationen