Я хочу добавить правила сопоставления пути к карте URL-адресов в вычислительном движке Google. Вот моя команда:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-wordpress --path-matcher-name root --path-rules "/=backend-\
service-wordpress,/features/=backend-service-wordpress,/pricing/=backend-\
service-wordpress,/blog/=backend-service-wordpress,/\?*=backend-service-wordpress"
он выдает это сообщение об ошибке:
ERROR: (gcloud.compute.url-maps.add-path-matcher) There was a problem modifying the resource:
- Invalid value for field 'resource': ''. Invalid path pattern
Не думаю, что я определил пустой ресурс в этой командной строке.
Я должен указать параметры --path-rules
в паре кавычек, потому что в противном случае zsh будет жаловаться.
Это первое правило, которое я хочу определить. После этого я собираюсь добавить правило для сопоставления всех /*
в другой серверный сервис, например:
gcloud compute url-maps add-path-matcher myproject-url-map --default-service \
backend-service-app --path-matcher-name others --path-rules "/*=backend-service-app"
Что означает это сообщение об ошибке? Что не так с моей командой?
Я подозреваю, что это как-то связано с использованием как двойных кавычек, так и кавычек с обратной косой чертой для аргумента --path-rules. В частности, вам не нужна обратная косая черта для цитирования вопросительного знака. Обратите внимание на результат:
print -r -- "\?"
Точно так же символы новой строки внутри двойных кавычек не нуждаются в обратной косой черте, если у вас не установлена опция csh_junkie_quotes.
Есть несколько способов, которыми zsh может помочь вам автоматически цитировать слова. Один из способов - попробовать привязать ключ к quote-region. Это будет цитировать регион (режим emacs) или визуальное выделение (режим vi).