加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 17:00:30 所属栏目:安全 来源:网络整理
导读:我需要将以下 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
我需要将以下 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?

您将文本保存为一个字符串/对象,而不是简单的“替换”.
您可以正确保存字符串:
TODO_OPTIONS=(--timeout --summary)
....
devtodo ${TODO_OPTIONS}

或者对变量运行单词拆分:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读