2009-04-28 27 views
5

tôi cần phải thay đổi mã Bash sau để ZshKhông thể chuyển đổi kịch bản Bash để Zsh kịch bản

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} 

tôi nhận được lỗi sau khi tôi bắt đầu Zsh với mã

todo: error, unknown argument '--timeout --summary', try --help 

Tôi cảm thấy rằng Zsh không thể hiểu được dòng sau

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

Các lệnh khác trong mã đầu tiên có vẻ phù hợp với Zsh.

Làm cách nào bạn có thể chuyển đổi mã thành Zsh?

+0

Các mặt hàng này trên tìm kiếm google cho 'devtodo zsh' nhờ. +1 –

Trả lời

4

Bạn đang lưu văn bản dưới dạng một chuỗi/đối tượng, thay vì là "điều thay thế" đơn giản. Bạn có thể lưu các chuỗi đúng:

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

Hoặc chạy tách từ trên biến của bạn:

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

@viraptor: Cảm ơn bạn đã trả lời! –

+0

Phiên bản đầu tiên của mã của bạn hoạt động. :) –

Các vấn đề liên quan