【发布时间】:2022-08-22 19:21:06
【问题描述】:
我在 git bash 中使用 shell 脚本来调用 sqlcmd 来运行一些 sql 脚本。脚本名是根据git分支名,所以命令是sqlcmd -E -S mySQLServer -d myDB \"$分支sql\"
它在命令行中运行良好,但我想对几个 git 分支重复它,所以我有一个脚本可以调用这个脚本来获取分支列表:
While read branch
do
. C:/sqlScript.sh $branch
done < \"$1\"
带有分支列表的文件在 $1 中传递
发生的情况是从列表中读取第一个分支,但永远不会移动到下一个分支。它重复执行 $branch 中具有相同值的 sqlScript.sh。
如果我将 sqlScript 更改为仅回显 $1,则一切都按预期工作。当我调用 sqlcmd 时,仅通过第一个分支。 那么为什么 sqlcmd 会把事情搞砸呢?
-
顺便说一句:此时这与 Git 无关,它纯粹是 bash。 \"Git-bash\" 只是 Windows 的 bash 端口,它包含在 Git-for-Windows 中,因为 Git 需要 POSIX 样式的 shell,而 bash 是免费的。
标签: bash shell scripting sqlcmd