场景:我正在尝试一个小型的 shell 脚本程序。
在这个程序中 - 我试图用 2 个表查询一个数据库。并试图得到一个是或否的答案。
etag = md5sum
我使用 python 脚本从文件中获取的那个。
echo 'select a.hash,b.hashuser, case when a.hash=b.hashuser then "No!" else "yes!" end from tempo b, hashes a where a.hash=b.hashuser and b.hashuser='$etag''
当我尝试在我的屏幕上打印它时,它清楚地显示 etag 作为 md5sum
但是,如果我尝试在我的数据库上查询它并尝试获取结果。使用下面给出的脚本
sqlite3 hashez.db 'select a.hash,b.hashuser, case when a.hash=b.hashuser then "No!" else "yes!" end from tempo b, hashes a where a.hash=b.hashuser and b.hashuser='$etag''
这是我得到的错误。
Error: unrecognized token: "579f0b61cf958a0eea2f60906e6a04a4"
谷歌搜索了一下,这是我从这个链接找到的解决方案
然后我把它改成${#etag}
echo 'select a.hash,b.hashuser, case when a.hash=b.hashuser then "No!" else "yes!" end from tempo b, hashes a where a.hash=b.hashuser and b.hashuser='${#etag}''
我现在得到的错误是
select a.hash,b.hashuser, case when a.hash=b.hashuser then "No!" else "yes!" end from tempo b, hashes a where a.hash=b.hashuser and **b.hashuser=32**
为什么 b.hashuser=32。是我的第一个问题。
第二个问题:
当我尝试使用上述函数查询数据库时:
sqlite3 hashez.db 'select a.hash,b.hashuser, case when a.hash=b.hashuser then "No!" else "yes!" end from tempo b, hashes a where a.hash=b.hashuser and b.hashuser='${#etag}''
我没有得到回复。
- 我的查询是否错误。, 如果是,为什么我直接在数据库上查询时得到答案?
对不起,我的英语不好