如何在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上使用命令中带有'/'的命令执行脚本?
我期待着大家的回音!非常感谢!
在curl
命令之前添加以下内容:
export MSYS_NO_PATHCONV=1
注意者:该解决方案基于Windows上的docker命令发生的类似问题(ref:The DevOps 2.1 Toolkit: Docker Swarm)