Я готовлю сценарии оболочки (.sh) для использования моей командной строки kubernetes и pks. в команде kubernetes у нас есть такие флаги, как --image, и я не могу передать в нее аргументы
я пробовал традиционный способ передачи аргументов, например изображение=$1
эхо $ изображение
оператор эха хорошо печатает значение, и хорошее имя $ также передается в команду, но сценарий дает необходимое изображение ошибки, т.е. изображение не указано в команде.
image=$1
hostPort=$2
name=$3
echo $image
kubectl --insecure-skip-tls-verify run $name --image= $image --port= $hostPort
оператор эха хорошо печатает значение, и хорошее имя $ также передается в команду, но сценарий дает необходимое изображение ошибки, т.е. изображение не указано в команде.
Попробуйте убрать пробел после =
. Кроме того, заключайте переменные в двойные кавычки, чтобы сохранить специальные символы в путях.
@deepankursingh Если ответ помог вам, подумайте над тем, чтобы проголосовать за него!
Такие параметры, как --image
, обычно должны быть отделены от их значения пробелом либо или знаком равенства. Так что --image = "$image"
и --image "$image"
, вероятно, оба будут работать. «Обычно» и «вероятно», потому что ничто не мешает кому-то написать какую-нибудь действительно сумасшедшую обработку аргументов, чтобы на самом деле поддержать то, как это работает здесь, но я никогда раньше этого не видел.
спасибо за помощь --image=$image
сработало --image = "$image"
отправит $image как строку в аргументе
Кроме того, я новичок в сообществе, поэтому, пожалуйста, не стесняйтесь редактировать мой вопрос, если он нуждается в исправлении :-)