繁体   English   中英

Git bash 和 sqlcmd

[英]Git bash and sqlcmd

我在 git bash 中使用 shell 脚本来调用 sqlcmd 来运行一些 ZAC5C74B64B4B4B83AZEF 脚本。 脚本名称基于 git 分支名称,因此命令为 sqlcmd -E -S mySQLServer -d myDB " $branch sql"

它在命令行中运行良好,但我想对几个 git 分支重复它,所以我有一个脚本可以调用这个脚本来获取分支列表:

While read branch
do
  . C:/sqlScript.sh $branch
done < "$1"

带有分支列表的文件在 $1 中传递

发生的是从列表中读取第一个分支,但永远不会移动到下一个分支。 它重复执行 $branch 中具有相同值的 sqlScript.sh。

如果我将 sqlScript 更改为仅回显 $1,则一切都按预期工作。 当我调用 sqlcmd 时,仅通过第一个分支。 那么为什么 sqlcmd 会把事情搞砸呢?

删除前导点,调用C:/sqlScript.sh...而不是. C:/sqlScript.sh... . C:/sqlScript.sh...


. scripts.sh . scripts.shsource script.sh的缩写,:它将执行当前 shell 中script.sh中列出的命令。 如果您有诸如exit之类的命令,它将退出当前的 shell。

常规调用将启动一个单独的 shell,它不会与您当前的调用混淆。

谢谢,但是执行任何一种方式都会产生相同的结果。 如果我在我调用的脚本中执行 sqlcmd,我会得到只从分支列表中读取第一行的效果。 如果我只是说 Git 结帐和 git 拉,它可以工作。 如果我添加 sqlcmd,它会卡在第一个分支上。

我通过在使用命令调用 sqlcmd 之前修复它,以便它为每次迭代启动一个新命令。com。

sqlcmd -E -S myServer -d myDB -i $branch.sql 

Command sqlcmd -E -S myServer -d myDB   -i $branch.sql

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM