Unfähig Bash-Skript Zsh Skript zu konvertieren
Frage
Ich brauche den folgenden Bash-Code Zsh ändern
TODO_OPTIONS="--timeout --summary"
cd ()
{
builtin cd "$@"
RV=$?
[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}
return $RV
}
pushd ()
{
builtin pushd "$@"
RV=$?
[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}
return $RV
}
popd ()
{
builtin popd "$@"
RV=$?
[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}
return $RV
}
# Run todo initially upon login
devtodo ${TODO_OPTIONS}
Ich erhalte die folgende Fehlermeldung, wenn ich Zsh mit dem Code
startentodo: error, unknown argument '--timeout --summary', try --help
Ich glaube, dass Zsh nicht die folgende Zeile verstehen
[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}
Andere Befehle im ersten Code scheinen für Zsh Recht zu sein.
Wie kann man den Code Zsh konvertieren?
Lösung
Sie sind Speichern Sie den Text als eine Zeichenfolge / Objekt, statt als ein einfaches „Ding zu ersetzen“. Sie können entweder die Zeichenfolge speichern richtig:
TODO_OPTIONS=(--timeout --summary)
....
devtodo ${TODO_OPTIONS}
oder einzelne Wörter aufgespalten auf Ihre Variable ausführen:
TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow