我正在创建一个bash脚本。这个脚本将会做与MySQL数据库相同的事情,我已经构建了函数:SELECT、INSERT、UPDATE和DELETE,并且我已经为它创建了登录菜单。现在我需要做的最后一件事是能够在运行脚本时在命令行中插入SQL语句。我已经创建了允许在命令行中输入"--help"运行帮助函数的功能。我也已经创建了在命令行中输入SELECT命令的选项,例如:
这将展示数据库中所有可用名称的完整列表。但我无法让下面的语句运行起来:
例如:
./database.sh SELECT name FROM student
这将展示数据库中所有可用名称的完整列表。但我无法让下面的语句运行起来:
例如:
./database.sh SELECT * FROM student
这应该显示可用的完整数据库。但事实并非如此,我已经考虑过转义*字符,但也不起作用。到目前为止,我已经创建了下面的代码片段,脚本将在运行任何函数之前运行它。
if [ -z $1 ]; then
Inlog
else
if [ "$1" = "--help" ] ; then
Help
else
case "$*" in
"SELECT naam FROM student")
echo "Hieronder is een overzicht van de namen van de studenten die aanwezig zijn in de database."
echo "------------------------"
cat $naam_dir
;;
"SELECT nummer FROM student")
echo "Hieronder is een overzicht van de studentnummers van de studenten die in de database aanwezig zijn."
echo "------------------------"
cat $nummer_dir
;;
"SELECT mail FROM student")
echo "Hieronder is een overzicht van de e-mail adressen van de studenten die in de database aanwezig zijn."
echo "-----------------------"
cat $mail_dir
;;
"SELECT \*\ FROM student")
paste $naam_dir $nummer_dir $mail_dir | expand t-20
*)
exit
;;
esac
fi
fi
我希望有人能帮我转义这些字符。一个SQL查询应该以“;”结尾,到目前为止,我也无法在bash中实现这一点...也许有人有想法。
set -f noglob
命令似乎不起作用。我认为我没有足够的权限,因为我正在一个由学校拥有的 shell 上构建并交付它。 - bryan