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

starten
todo: 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?

War es hilfreich?

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
scroll top