غير قادر على تحويل باش سكربت Zsh النصي

StackOverflow https://stackoverflow.com/questions/800235

  •  03-07-2019
  •  | 
  •  

سؤال

أنا بحاجة إلى تغيير التالية باش رمز 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?

هل كانت مفيدة؟

المحلول

أنت توفر النص سلسلة واحدة/object, بدلا من مجرد "شيء بديل".يمكنك إما حفظ السلسلة بشكل صحيح:

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

أو تشغيل word تقسيم على المتغير الخاص بك:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top