![sqlite 命令的 Bash 脚本](https://linux22.com/image/190925/sqlite%20%E5%91%BD%E4%BB%A4%E7%9A%84%20Bash%20%E8%84%9A%E6%9C%AC.png)
我希望运行一个 bash 脚本,该脚本要求在 sqlite 查询中使用一个变量。
我在脚本编写方面没有真正的经验,无论如何我已经尝试过类似以下的方法,但它不起作用。甚至没有给出错误,只是不显示任何内容。
#!/bin/bash
echo name
read name
sqlite3 /arch.db << 'EOF'
.headers on
select type, number, address from documents where name = '$name';
EOF
我将不胜感激任何帮助。
答案1
在回答您的脚本之前:您确定路径正确吗?此路径:sqlite3 /arch.db
表示arch.db
在 root 中搜索/
。
也许你的意思是./arch.db
?这样 sqlite db 文件就会在脚本的同一路径中查找吗?
请注意,** $name
var 用两个引号引起来'
,这意味着该变量不被视为变量,而是被视为字符串。
您的脚本可以这样重写:
#!/bin/bash
echo name
read name
sqlite3 ./arch.db <<EOF
.headers on
select type, number, address from documents where name = "$name";
EOF