2009-04-28 11 views
5

Je dois changer le code Bash suivant zshImpossible de convertir script Bash pour le script zsh

TODO_OPTIONS="--timeout --summary" 
     cd() 
     { 
      builtin cd "[email protected]" 
      RV=$? 
      [ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS} 
      return $RV 
     } 

     pushd() 
     { 
      builtin pushd "[email protected]" 
      RV=$? 
      [ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS} 
      return $RV 
     } 

     popd() 
     { 
      builtin popd "[email protected]" 
      RV=$? 
      [ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS} 
      return $RV 
     } 

     # Run todo initially upon login 
     devtodo ${TODO_OPTIONS} 

Je reçois l'erreur suivante quand je commence zsh avec le code

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

Je pense que Zsh ne peut pas comprendre la ligne suivante

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

D'autres commandes dans le premier code semble être bon pour Zsh.

Comment pouvez-vous convertir le code en Zsh?

+0

trouvé sur une recherche Google pour grâce 'devtodo zsh'. +1 –

Répondre

4

Vous enregistrez le texte sous la forme d'une chaîne/d'un objet, plutôt que d'une simple "chose à substituer". Vous pouvez enregistrer la chaîne correctement:

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

Ou exécuter le découpage des mots sur votre variable:

TODO_OPTIONS="--timeout --summary" 
.... 
devtodo ${=TODO_OPTIONS} 
+0

@viraptor: Merci pour votre réponse! –

+0

La première version de vos codes fonctionne. :) –

Questions connexes