Impossible de convertir le script Bash en script Zsh
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?
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