Não foi possível converter script de Bash script Zsh
Pergunta
É preciso mudar o seguinte código Bash para 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}
Eu recebo o seguinte erro quando eu começar Zsh com o código
todo: error, unknown argument '--timeout --summary', try --help
Eu sinto que Zsh não pode compreender a seguinte linha
[ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS}
Outros comandos no primeiro código parece ser certo para Zsh.
Como você pode converter o código para Zsh?
Solução
Você está salvando o texto como uma cadeia / objeto, em vez de como um simples "coisa a substitua". Você pode salvar a string corretamente:
TODO_OPTIONS=(--timeout --summary)
....
devtodo ${TODO_OPTIONS}
ou executar repartição de palavras em sua variável:
TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow