2009-04-28 16 views
5

次のBashコードをZshに変更する必要があります。 BashスクリプトをZshスクリプトに変換できません

TODO_OPTIONS="--timeout --summary" 
     cd() 
     { 
      builtin cd "[email protected]" 
      RV=$? 
      [ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS} 
      return $RV 
     } 

     pushd() 
     { 
      builtin pushd "[email protected]" 
      RV=$? 
      [ $RV = 0 -a -r .todo ] && devtodo ${TODO_OPTIONS} 
      return $RV 
     } 

     popd() 
     { 
      builtin popd "[email protected]" 
      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に変換できますか?

+0

「をdevtodo zshの」感謝のためのGoogle検索でこれを見つけました。 +1 –

答えて

4

単純な「代わるもの」ではなく、文字列/オブジェクトとしてテキストを保存します。 こともできますし、適切に文字列を保存:あなたの変数に

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

または実行単語分割:

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

@viraptor:あなたの答えをありがとう! –

+0

コードの最初のバージョンが機能します。 :) –

関連する問題