我对shell脚本很新,并尝试创建一个shell脚本,该脚本进入一个目录并选择文件夹中的* .sql文件并执行标识的文件。
我知道可以从shell脚本中调用sql文件,但我想将SQL文件与shell脚本本身分开,因为脚本数量非常多,而且在shell外部维护更容易本身。
非常感谢您的帮助。
答案 0 :(得分:0)
您可以通过包含要执行的所有* .sql文件名来动态生成临时shell脚本。然后在最后运行这个shell脚本。
cd your_sql_script_path
final_script="/your_script_path/final_script.sh"
echo "sqlplus -s /nolog << EOF
CONNECT user/password;
whenever sqlerror exit sql.sqlcode;
set echo off
set heading off" > ${final_script}
for sql_file in *.sql;
do
echo "@${sql_file}" >>${final_script}
done
echo -e "exit;\nEOF" >>${final_script}
chmod +x ${final_script}
sh ${final_script}
答案 1 :(得分:0)
你可以试试这个:
$ for i in *.sql;
do
echo "$i and do your stuff";
done
输出:
script01.sql and do your stuff
script02.sql and do your stuff