質問

次の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に変換するにはどうすればよいですか

役に立ちましたか?

解決

テキストは、単純な「置換するもの」ではなく、1つの文字列/オブジェクトとして保存しています。 文字列を適切に保存できます:

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

または変数で単語分割を実行します:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top