当前位置: 首页 > 知识库问答 >
问题:

在sqlite3字符串命令中传递Bash参数[重复]

苏乐
2023-03-14

我有一个不起作用的命令:

sqlite3 my_db.sqlite "SELECT name FROM sqlite_master WHERE type = 'table';" | for i in $(cat) ; do sqlite3 my_db.sqlite 'SELECT * FROM "${i}"'; done

为了快速解释它:下面的第一部分应该从我拥有的sqlite文件中检索表名:

sqlite3 my_db.sqlite "SELECT name FROM sqlite_master WHERE type = 'table';"
for i in $(cat) ; do sqlite3 my_db.sqlite 'SELECT * FROM "${i}"'; done

提前感谢您的帮助。

共有1个答案

方玄天
2023-03-14

必须在查询周围使用双引号,以允许bash识别变量。这意味着您必须正确转义作为SQL语句一部分的双引号:

... | for i ... ; do sqlite3 my_db.sqlite "SELECT * FROM \"${i}\""; done
 类似资料:
  • 我正在实现一个Android应用程序来加载RSS提要。在我决定添加一个新屏幕以显示两个按钮并尝试向AsyncTask传递一个字符串值之前,它工作得非常好。其思路是这样的:屏幕将显示两个按钮供用户选择。一旦用户点击了其中一个按钮,它将调用AsyncTask以及字符串值(url)到readRSS(url),然后rss提要将由displayRSS(url)显示。readRSS(url)将相应地加载RSS

  • 问题内容: 我想将参数(即字符串)传递给Onclick函数。目前,我这样做: 例如,result.name等于字符串“ Add”。当我单击此按钮时,出现一个错误,提示未定义添加。由于此函数调用可以完美地与数字参数一起使用,因此我认为它与字符串中的符号“”有关。以前有人遇到过这个问题吗? 问题答案: 看起来您是从字符串构建DOM元素。您只需要在result.name周围添加一些引号即可: 您实际上应

  • 如果你需要在命令行下插入一个值,通常需要使用引号将其括起来,尤其是当其包含空格时更是如此。 shellquote 函数可以携带任意数量的参数(包括数组), 它会使用引号将每个参数都括起来并返回一个可以传递到 Shell 命令行上的以空格间隔的字符串。 在下面的例子中,我们想要创建一个用于文件改名的 exec 资源, 然而源文件名和目标文件名都包含空格,因此在命令行上需要正确地使用引号将它们括起来。

  • 我试图找到从命令行传递gradle任务参数的最佳方法。我有这个任务。我想从学生练习中解包解决方案,并将它们复制到项目中的正确位置,以突出它们。我这样称呼这个任务: 这是gradle任务: 你有什么建议来优化这个过程吗?

  • 我试图通过C#代码传递此字符串,但失败了: soap:body1479374 System.xml.XmlDocument文档=新建System.xml.XmlDocument();Doc.LoadXML(字符串); 尝试发送作为整体和作为3个部分,但在A节内失败 string Sectiona=@“ soap:body ”; 字符串段B=“1479374”; 字符串节C=“”; 字符串数据=段A

  • 问题内容: 我需要稍后再运行一个mail.php文件,而不是让用户在提交register.php时等待发送验证电子邮件。 因此,我选择在1分钟后使用 at 命令在命令行中运行mail.php( 在register.php 中 调用 ): 但是,当我处于at命令的交互模式时,我只能将参数发送到该php文件。 由于我希望这是自动的,因此我需要在运行时使用shell脚本: 但是我找不到传递 {email