首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本:执行2个命令并保持第一次运行

Shell脚本:执行2个命令并保持第一次运行
EN

Stack Overflow用户
提问于 2018-04-24 07:18:59
回答 2查看 72关注 0票数 0

我试图为我的停靠者映像编写一个shell脚本,其中:

  1. 启动了mssqql服务器。
  2. 数据库设置发生

但是,使用我的当前脚本,一旦完成数据导入,我的sql server实例就会停止。有人能指出我做错了什么吗?

代码语言:javascript
复制
#!/bin/bash
database=myDB
wait_time=30s
password=myPw

exec /opt/mssql/bin/sqlservr &
echo importing data will start in $wait_time...
sleep $wait_time
echo importing data...

/opt/mssql-tools/bin/sqlcmd -S 0.0.0.0 -U sa -P $password -i ./init.sql

for entry in "table/*.sql"
do
  echo executing $entry
  /opt/mssql-tools/bin/sqlcmd -S 0.0.0.0 -U sa -P $password -i $entry
done

for entry in "data/*.csv"
do
  shortname=$(echo $entry | cut -f 1 -d '.' | cut -f 2 -d '/')
  tableName=$database.dbo.$shortname
  echo importing $tableName from $entry
  /opt/mssql-tools/bin/bcp $tableName in $entry -c -t',' -F 2 -S 0.0.0.0 -U sa -P $password
done
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-11 05:05:12

似乎我需要添加set -m来解决这个问题。

票数 0
EN

Stack Overflow用户

发布于 2018-04-24 09:16:08

我在shell脚本中没有看到任何明显的错误。以下是我的建议:-

  1. 尝试在没有exec的情况下从脚本的当前外壳运行服务器 /opt/mssql/bin/sqlservr &
  2. 在这两个循环语句中加入一些回显,以检查那里发生了什么。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49995591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档