Impossibile convertire lo script Bash in script Zsh
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?
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