bash脚本-无法在值中设置带双引号的变量

2023-11-26

需要帮助修复此 bash 脚本以设置包含双引号的值的变量。不知何故,我错误地将其定义为我的价值观foo and bar未根据需要用双引号引起来。

到目前为止我的脚本:

#!/usr/local/bin/bash
set -e
set -x

host='127.0.0.1'
db='mydev'
_account="foo"
_profile="bar"
_version=$1
_mongo=$(which mongo);

exp="db.profile_versions_20170420.find({account:${_account}, profile:${_profile}, version:${_version}}).pretty();";
${_mongo} ${host}/${db} --eval "$exp"

set +x

输出显示:

+ host=127.0.0.1
+ db=mydev
+ _account=foo
+ _profile=bar
+ _version=201704112004
++ which mongo
+ _mongo=/usr/local/bin/mongo
+ exp='db.profile_versions_20170420.find({account:foo, profile:bar, version:201704112004}).pretty();'
+ /usr/local/bin/mongo 127.0.0.1/mydev --eval 'db.profile_versions_20170420.find({account:foo, profile:bar, version:201704112004}).pretty();'
MongoDB shell version: 3.2.4
connecting to: 127.0.0.1/mydev
2017-04-22T15:32:55.012-0700 E QUERY    [thread1] ReferenceError: foo is not defined :
@(shell eval):1:36

我需要的是account:"foo", profile:"bar"用双引号括起来。


在 bash(和其他 POSIX shell)中,以下 2 种状态是等效的:

_account=foo
_account="foo"

您想要做的是保留报价,因此您可以执行以下操作:

_account='"foo"'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash脚本-无法在值中设置带双引号的变量 的相关文章

  • 如何将文件中的值分配给 UNIX sh shell 中的变量?

    我一直在搜索这个网站 试图找到这个问题的答案 并发现了几个非常好的答案 不幸的是 它们都不适合我 这是我正在使用的脚本 VALUE cat szpfxct tmp export VALUE echo gt gt LGFILE echo te
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • 如何使用 bash 脚本关闭所有终端,在每个终端中有效地按 Ctrl+Shift+Q

    我经常打开许多终端 其中一些正在运行重要的进程 例如服务器 而另一些则没有运行任何东西并且可以关闭 如果您按 重要 则会弹出确认提示Cntrl Shift Q在其中 如下所示 我想要一个 bash 脚本 它可以关闭所有终端 但将 重要 终端
  • 编写脚本时,#!/usr/bin/perl 和 #!/usr/bin/env perl 有什么区别?

    显然 这同样适用于用 python bash sh 等替代 perl 昆汀下面的答案显然是正确的 所以我接受了它 但我想我实际上的意思是 两种使用 的方式的优点和缺点是什么 调用 perl python bash 作为脚本的解释器 有人提到
  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 向伪 shell (pty) 发出命令

    我尝试使用 subprocess popen os spawn 来运行进程 但似乎需要伪终端 import pty master slave pty openpty os write master ls l 应该发送 ls l 到从属终端
  • 如何在fish shell脚本中获取程序名称?

    在 bash 中 与在 ruby 中一样 程序名称由 0 给出 鱼里有什么 如果有必要 我可以执行以下操作 set PROGRAM ps no header o args p self egrep o S 2 但我确信程序名称必须已经在某个
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • 如何在 mac 中使用“getopt”命令让 bash 处理长参数?

    我想让我的 bash 脚本处理长参数 我发现getopt 但 OS X 不支持它 谁能告诉我为什么getoptBSD 实现了 GNU 没有实现 我尝试构建getopt在 GNU C lib 中 但由于我对 Linux 的技能不佳而失败了 有
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • 如何在gcc中打印UINT64_t?

    为什么这段代码不起作用 include
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • bash 自动完成:添加可能完成的描述

    是否可以使 bash 自动完成功能看起来像 Cisco IOS shell 中一样 我的意思是为每个完成添加简短的描述 如下所示 telnet 10 10 10 TAB Pressed 10 10 10 10 routerA 10 10 1
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 进程名称长度的最大允许限制是多少?

    进程名称允许的最大长度是多少 我正在读取进程名称 proc pid stat文件 我想知道我需要的最大缓冲区 我很确定有一个可配置的限制 但就是找不到它在哪里 根据man 2 prctl http man7 org linux man pa
  • execlp 多个“程序”

    我想运行类似的东西 cat file tar base64 myprogram c base64 d tar zvt I use execlp运行该进程 当我尝试运行类似的东西时cat它有效 但如果我尝试运行base64 d tar zvt
  • Bash - 在 perl 正则表达式中使用变量以及匹配组

    这是我在 stackoverflow 上的第一篇文章 如果我错过了一些重要的内容 请原谅我 我目前遇到以下问题 目标是根据我准备的文件列表动态替换端口号find 这些文件中的所有端口均以数字 4 开头 有 5 位数字 现在是棘手的部分 我只
  • 通过名称查找进程ID

    如何在 Ruby 中通过名称或完整命令行找到 pid 而不调用外部可执行文件 我正在将 SIGUSR2 发送到命令行包含的进程ruby job rb 我想在不打电话的情况下执行以下操作pgrep uid Process uid pid pg
  • Mac OS X 中 Bash 脚本中的 SFTP 命令

    我需要使用 SFTP 和 SSH 从 Mac 主机将文本文件传输到远程 PC freeSSH 这两个连接在本地网络中 那么有没有办法从 Bash 脚本内部运行 SFTP 命令 使用提供的用户名和密码 我已经尝试过一些脚本expect 但我没
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b

随机推荐

  • 我可以明确检查取消/终止异步计算吗?

    我有一个如下所示的异步计算 请参阅内联注释 async do Async Sleep 100 cancellation may happen during sleep but isn t checked at the end of the
  • 将 PropertyPlaceholderConfigurer 与列表结合使用

    我正在使用 PropertyPlaceholderConfigurer 从属性文件映射字符串值 它工作正常 我的问题是我是否可以在我的属性文件中设置以下内容 我的列表 A B C 然后将其映射到列表 Value myList private
  • FMA(融合乘加)指令是否始终产生与先乘后加指令相同的结果?

    我有这个程序集 AT T 语法 mulsd xmm0 xmm1 addsd xmm1 xmm2 我想将其替换为 vfmadd231sd xmm0 xmm1 xmm2 这种转换是否总是在所有涉及的寄存器和标志中留下相同的状态 或者结果浮动会略
  • 新的 create-react-app 构建上的 npm start 返回 ELIFECYCLE 错误

    使用 create react app 制作了一个新的 React 应用程序 现在运行 npm start 时在终端中出现以下错误 gt react scripts start Attempting to bind to HOST envi
  • 如何从一年中的某一天获取日期

    我正在使用一个看起来有点像这样的数据集 Year Date Day nr Value 1976 19 02 1976 50 167 1976 19 03 1976 79 140 1978 05 03 1978 64 200 1978 05
  • 如何在 ActionScript 3.0 中查找关联数组的长度?

    有没有一种简单的方法来检索关联数组的长度 实现为Object 在 ActionScript 3 0 中 据我所知 在 AS3 中创建关联数组有两种主要方法 Use a Dictionary目的 当钥匙不需要是一个时特别方便string Us
  • Android:从返回堆栈中删除所有先前的活动

    当我点击Logout按钮在我的Profile我想带用户去的活动Login页面 他需要在其中使用新的凭据 因此我使用了这段代码 Intent intent new Intent ProfileActivity this LoginActivi
  • python元组的内部结构[重复]

    这个问题在这里已经有答案了 gt gt gt a 1 gt gt gt b 1 gt gt gt id a 140472563599848 gt gt gt id b 140472563599848 gt gt gt x gt gt gt
  • 在 ShowDialog (WPF MVVM) 中将 UpdateSourceTrigger 设置为显式

    我看到了这个例子 Binding UpdateSourceTrigger 属性 在示例中 UpdateSourceTrigger 设置为 Explicit 然后在视图代码中调用 TextBox 名称的 UpdateSource 但是 如果我
  • 如何在 jQuery 中检查 AJAX 响应是否包含 HTML 内容?

    我有一个页面 其中包含一种表单 在 AJAX 调用成功时有两种可能的响应 其中之一仅返回状态代码 我需要做的是检查response任何 HTML 内容的成功回调中的对象 以便我可以将它们显示在我的页面上 我已经知道我可以访问response
  • Gacutil 与 2008 的位置

    我想运行一个在 gac 中安装 dll 的构建后脚本 但我必须使用 gacutil exe 的完整路径 我在哪里可以找到它 我有视觉工作室2008 答案是C Program Files Microsoft SDKs Windows v6 0
  • 如何在 Javascript 中将 Guid 转换为字节数组?

    我有一个服务总线 转换数据的唯一方法是通过 JavaScript 我需要将 Guid 转换为字节数组 以便随后将其转换为 Ascii85 并将其缩小为接收客户端点的 20 个字符的字符串 任何想法将不胜感激 试试这个 需要大量测试 var
  • 使用 JavaScript 事件模拟悬停

    是否可以使用 JavaScript 事件模拟悬停 我尝试在目标元素上注入鼠标悬停事件 但没有成功 例如 如果有一个带有悬停选择器的链接 是否可以使用 JavaScript 事件 悬停 在其上 基本上 我想触发 CSS 悬停 你可以假设我不会
  • 如何在NiFi中调用远程REST服务

    是否可以在NIFI处理器中使用xmlHttpRequest来调用远程休息服务 就我而言ExecuteScript处理器 使用Javascript 无法评估XMLHttpRequest 有没有类似的解决方案可以用来获取响应数据 var Out
  • 安卓应用功耗

    如何查看Android中各个应用程序的功耗 与不同的应用程序相比 至少功耗应该是相对的 并且这些应用程序可能正在使用任何服务 如 WIFI GPS LCD 唤醒锁等 android 中是否有任何与此相关的 API 可以测量使用上述资源的应用
  • ruby on Rails MVC 框架项目中的 API 调用在哪里?

    我有一个使用 mvc 框架的 Ruby on Rails 应用程序 截至目前 我在控制器中有 API 调用 但认为这不是适合它们的地方 我的所有 API 调用应该放入哪种类型的文件 谢谢 def getDetails id api resp
  • 在 C# 中使用 Unit 返回类型实现 F# 接口成员

    假设我在 F 中定义了以下接口 type IFoo lt T gt abstract member DoStuff T gt unit 如果我在 C 中实现它 我需要方法签名为 public void DoStuff
  • 状态栏上的导航抽屉半透明不起作用

    我正在开发 Android 项目 并且正在实现导航抽屉 我正在阅读新书材料设计规范和材料设计清单 规范规定 滑出窗格应浮动在包括状态栏在内的所有其他内容之上 并且在状态栏上呈半透明状态 我的导航面板位于状态栏上方 但没有任何透明度 我已经遵
  • 在左右扬声器上播放 2 个不同的音频流

    一些特殊的情况迫使我做出了那种变态的事情 是否可以在不同通道上播放 2 个不同的音频流 想象一下耳机 我需要同时在左扬声器上播放第一首歌曲 在右扬声器上同时播放第二首歌曲 经过一些研究 我发现可以在某个单一频道上播放 甚至可以关闭其中之一
  • bash脚本-无法在值中设置带双引号的变量

    需要帮助修复此 bash 脚本以设置包含双引号的值的变量 不知何故 我错误地将其定义为我的价值观foo and bar未根据需要用双引号引起来 到目前为止我的脚本 usr local bin bash set e set x host 12