Shell脚本:执行2个命令并保持首次运行

时间:2018-04-24 07:18:59

标签: linux sh

我正试图为我的码头图片编写一个shell脚本,其中:

  1. 启动mssqql服务器
  2. 数据库设置发生
  3. 然而,对于我当前的脚本,我的SQL Server服务器实例在数据导入完成后立即停止。谁能指出我做错了什么?

    #!/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
    

1 个答案:

答案 0 :(得分:0)

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

  1. 尝试从没有exec

    的脚本的当前shell运行服务器
     /opt/mssql/bin/sqlservr &
    
  2. 在循环语句中加入一些echo来检查那里发生了什么。

  3. 希望这会有所帮助。