Невозможно преобразовать сценарий Bash в сценарий Zsh.

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Мне нужно изменить следующий код 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

Я чувствую, что Зш не может понять следующую строку

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

Другие команды в первом коде кажутся подходящими для Zsh.

Как преобразовать код в Zsh?

Это было полезно?

Решение

Вы сохраняете текст как одну строку/объект, а не как простую «вещь для замены».Вы можете либо правильно сохранить строку:

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

Или запустите разделение слов по вашей переменной:

TODO_OPTIONS="--timeout --summary"
....
devtodo ${=TODO_OPTIONS}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top