Domanda

Devo cambiare il seguente codice Bash in 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} 

Ricevo il seguente errore quando avvio Zsh con il codice

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

Sento che Zsh non può capire la seguente riga

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

Altri comandi nel primo codice sembrano essere giusti per Zsh.

Come puoi convertire il codice in Zsh?

È stato utile?

Soluzione

Stai salvando il testo come una stringa / oggetto, invece che come una semplice cosa da "sostituire". Puoi salvare la stringa correttamente:

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

O esegui la suddivisione delle parole sulla tua variabile:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top