无法将Bash脚本转换为Zsh脚本

5
我需要将下面的Bash代码改为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} 

当我使用以下代码启动Zsh时,出现以下错误:
todo: error, unknown argument '--timeout --summary', try --help

我感觉Zsh无法理解以下这行代码

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

第一段代码中的其他命令似乎适用于Zsh。

你如何将这段代码转换为Zsh?


在谷歌搜索“devtodo zsh”时发现了这个,谢谢。+1 - Robert Massaioli
1个回答

4

您需要将文本保存为一个字符串/对象,而不是简单的“替换内容”。

您可以正确地保存该字符串:

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

或者对您的变量进行分词:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接