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

如何将含星号(*)的命令输出存储到变量中?

问题解决:变量中的星号被自动替换为目录文件列表

原因

这是Shell的路径名扩展(通配符展开)导致的:当你未用引号包裹变量直接输出时,Shell会把变量中的*识别为通配符,替换成当前目录下的所有非隐藏文件列表。

解决方法

使用双引号包裹变量,即可保留变量的原始内容,避免通配符被展开。

复现场景的修正命令

cronExpression=$(echo "33 * * *") && echo "$cronExpression"

执行后会输出预期结果:33 * * *

针对Vault命令的正确用法

你的原始捕获命令secrets=$(vault read kv/data/secrets)本身是正确的,已经把包含*的输出存入变量了。后续使用该变量时,只需用双引号包裹:

echo "$secrets"
# 或者传递给其他命令时
some_command "$secrets"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 01:52:06