shell 如何将命令输出保存到带星号(*)的变量中?[duplicate]

rn0zuynd  于 2023-03-09  发布在  Shell
关注(0)|答案(1)|浏览(194)
    • 此问题在此处已有答案**:

I just assigned a variable, but echo $variable shows something else(7个答案)
3天前关闭。
我试图捕捉命令输出到一个变量,但星号(*)字符自动转换为目录文件。
要运行的命令

secrets=$(vault read kv/data/secrets)
    • 用于重新创建方案的表达式**
cronExpression=$(echo "33 * * *") && echo $cronExpression
    • 预期**
cronExpression="33 * * *"
    • 实际**
33 LICENSE README.md test.json LICENSE README.md test.json LICENSE README.md test.json

我尝试执行此命令的文件夹中有LICENSE README.md test.json文件,因此每个*都将转换为同一目录中的列表文件

omqzjyyz

omqzjyyz1#

就像这样:

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

了解如何在shell中正确引用,这非常重要:
"双引号"包括空格/元字符和 * every * 扩展的每个文本:"$var""$(command "$var")""${array[@]}""a & b"。将'single quotes'用于代码或文字$'s: 'Costs $5 US'ssh host 'echo "$HOSTNAME"'。请参见
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words
when-is-double-quoting-necessary

相关问题