这个例子演示了如何在shell脚本中执行多个sql来操作数据库表. #! /bin/sh USER_HOME=/home/`whoami` . /etc/profile if [ -f ${USER_HOME}/.bash_profile ]; then . ${USER_HOME}/.bash_profile fi mysql -h -ujifei30 -pNapnUszJD -Dtpssprod <<EOF select table_name from information_schema
shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出 如: #/bin/sh local ret='sqlite3 test.db "select test from test;"' 或: local ret=$(sqlite3 test.db "select test from test;") 如果test.db被锁定,ret将为空,标准错误输出有信息“Error:database is locked”.
在shell中有很多种命令的同义词,到底先执行的是哪一个命令呢,我们可以借助type -a命令来检查. 为了测试我们就对type本身做一条alias: alias type=type 然后我们通过type -a type查看一下,结果如下: type -a type type is aliased to `type' type is a shell builtin type is /usr/bin/type 可以清楚地看到,对于命令来说首先执行的是alias,然后是shell内嵌的命令,最后才是