Я пытался написать bash-скрипт для обработки условного переключения, и каждый раз он получал значение true. Итак, я сократил это до этого, и я получал одно и то же поведение, всегда повторяя любой параметр, который я отправил, а не только при отправке -c:

myfunc(){
if [[ $1 == "-c" ]];
  then
    echo $1
  fi
}

1 ответ1

0

Хотя я не могу ответить, почему это всегда было верным, я смог это исправить. В итоге мне пришлось удалить кавычки с переключателя, чтобы рабочая версия выглядела так:

myfunc(){
if [[ $1 == -c ]];
  then
    echo $1
  fi
};

Согласно предложению Darth Android , просто держите кавычки одинаковыми между двумя сравнениями, что безопаснее.

myfunc(){
if [[ "$1" == "-c" ]];
  then
    echo $1
  fi
};

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .