在Windows上运行bash脚本时,Git Bash与斜杠'/'混淆

问题描述 投票:1回答:1

如何在Windows上使用斜杠'/'在git bash上运行bash脚本。

这是我的脚本文件。我可以在Ubuntu / Linux上很好地运行。

#!/bin/sh

KONG_ADMIN_HOST=localhost
KONG_ADMIN_PORT=8001

registerServiceRoute() {
  printf "\nRegister %s service route\n" $1
  curl -XPOST ${KONG_ADMIN_HOST}:${KONG_ADMIN_PORT}/services/$1/routes \
    --data protocols=grpc \
    --data name=$1-grpc \
    --data paths=$2          -----> This line '/'is understood wrong in Git Bash Windows
  printf "\n"
}

SERVICE_NAME=auth
SERVICE_PATH=/com.bht.saigonparking.api.grpc.auth.AuthService/     ----------> path with '/' here

registerServiceRoute ${SERVICE_NAME} ${SERVICE_PATH}

我在Windows的Git Bash上运行脚本后,控制台告知路径应以/开头这意味着它与路径中的/混淆。尽管/已经正确。

这是git bash Windows控制台的输出:

Register auth service route
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   248  100   143  100   105    674    495 --:--:-- --:--:-- --:--:--  1169{"message":"schema violation (paths.1: should start with: \/)","name":"schema violation","fields":{"paths":["should start with: \/"]},"code":2}

如何在Git Bash Windows上使用命令中带有'/'的命令执行脚本?

我期待着大家的回音!非常感谢!

windows bash shell git-bash slash
1个回答
1
投票

curl命令之前添加以下内容:

export MSYS_NO_PATHCONV=1

注意者:该解决方案基于Windows上的docker命令发生的类似问题(ref:The DevOps 2.1 Toolkit: Docker Swarm

© www.soinside.com 2019 - 2024. All rights reserved.