Pregunta

Necesito cambiar el siguiente código Bash a 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} 

Recibo el siguiente error cuando inicio Zsh con el código

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

Siento que Zsh no puede entender la siguiente línea

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

Otros comandos en el primer código parecen ser los adecuados para Zsh.

¿Cómo puedes convertir el código a Zsh?

¿Fue útil?

Solución

Está guardando el texto como una cadena / objeto, en lugar de como una simple cosa " para sustituir " ;. Puede guardar la cadena correctamente:

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

O ejecuta la división de palabras en tu variable:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top