You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单引号嵌套的双引号中使用Bash变量(CEL场景)

解决方案

要在Passbolt的CEL过滤命令中嵌入Bash变量,你可以通过以下几种实用方式实现:

方法1:转义双引号并使用外层双引号

将整个--filter参数用双引号包裹,内部的双引号添加反斜杠转义,Bash会自动解析其中的变量:

# 定义目标文件夹ID变量
folder_id="your-actual-folder-id"
# 构造并执行Passbolt命令
passbolt list resource --filter "FolderParentID == \"$folder_id\""

方法2:单引号拼接变量

利用Bash的字符串拼接特性,把变量部分用双引号包裹,前后用单引号拼接成完整的过滤条件:

folder_id="your-actual-folder-id"
passbolt list resource --filter 'FolderParentID == "'"$folder_id"'"'

这段代码的拼接逻辑:'FolderParentID == "' 是一段单引号包裹的固定字符串,"$folder_id" 是解析变量的部分,'"' 是闭合的单引号字符串,三者拼接后正好符合CEL的格式要求。

方法3:用printf格式化过滤字符串

如果需要更直观的格式控制,可以先用printf生成符合要求的过滤字符串,再传入Passbolt命令:

folder_id="your-actual-folder-id"
# 生成格式化后的过滤条件
filter_str=$(printf 'FolderParentID == "%s"' "$folder_id")
# 执行Passbolt命令
passbolt list resource --filter "$filter_str"

内容的提问来源于stack exchange,提问作者Fejor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:49:54