bash 文件中的 sqlcmd - 存储到变量
sqlcmd in bash file - store to variable
运行 在 docker 容器中,我试图确定 table 是否存在于 mssql 数据库中:
RESULT='/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = N'MyTable'"'
if [ "$RESULT" == "MyTable" ]; then
echo YES
fi
echo "$RESULT"
echo "$RESULT"
总是将整个命令作为字符串输出,它不会被执行。所以它只是将其指定为刺...
如何执行并分配结果?
Bash 不执行单引号中定义的命令。单引号用于字符串定义。
您尝试执行的操作称为命令替换。它可以通过两种不同的方式完成:
RESULT=`command`
RESULT=$(command)
因此您的示例应如下所示:
RESULT=`/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = 'MyTable'`
if [ "$RESULT" == "MyTable" ]; then
echo YES
fi
echo "$RESULT"
您可以在此处找到有关命令替换的更多信息:
https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html
运行 在 docker 容器中,我试图确定 table 是否存在于 mssql 数据库中:
RESULT='/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = N'MyTable'"'
if [ "$RESULT" == "MyTable" ]; then
echo YES
fi
echo "$RESULT"
echo "$RESULT"
总是将整个命令作为字符串输出,它不会被执行。所以它只是将其指定为刺...
如何执行并分配结果?
Bash 不执行单引号中定义的命令。单引号用于字符串定义。
您尝试执行的操作称为命令替换。它可以通过两种不同的方式完成:
RESULT=`command`
RESULT=$(command)
因此您的示例应如下所示:
RESULT=`/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -i "SELECT name FROM master.sys.databases WHERE name = 'MyTable'`
if [ "$RESULT" == "MyTable" ]; then
echo YES
fi
echo "$RESULT"
您可以在此处找到有关命令替换的更多信息: https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html