Question

Je dois modifier le code Bash suivant en Zsh

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} 

Je reçois le message d'erreur suivant lorsque je lance Zsh avec le code

todo: error, unknown argument '--timeout --summary', try --help

Je pense que Zsh ne comprend pas la ligne suivante

[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}

Les autres commandes du premier code semblent convenir à Zsh.

Comment convertir le code en Zsh?

Était-ce utile?

La solution

Vous enregistrez le texte sous la forme d'une chaîne / d'un objet, au lieu d'un simple "élément de substitution". Vous pouvez soit enregistrer la chaîne correctement:

TODO_OPTIONS=(--timeout --summary)
....
devtodo ${TODO_OPTIONS}

Ou exécutez le fractionnement de mots sur votre variable:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top