此 Bash 脚本执行files
数据库中数组中的每个文件。但是,它会为每个文件创建一个新的 sqlcmd 会话。有没有办法在循环之前创建一个 sqlcmd 会话,然后将该会话用于所有文件执行?
#!/bin/bash
# declare and initialize an array of files to be executed (listed in sequence of execution)
declare -a files=(
'0140_Items.sql'
'0170_Warehouses.sql'
'0190_ItemsAtWarehouses.sql'
)
# loop through files array to execute each file on database
for file in "${files[@]}"
do
sqlcmd -S SQLDEV14 -E -d D7stage -i ".\Modules\\$file" -m 1
done
如果是这样,语法是什么?我在博客和论坛上搜索了如何执行此操作,但没有找到任何有用的信息。
如果您使用的是 shell,例如
bash
您可以连接文件并将它们作为单个实体通过管道传输:我最终这样做了: