为什么bash修改我的变量的内容

问题描述 投票:0回答:1

在 Mac 上考虑此代码:

#/bin/bash
x="-map [audioWithGain]"
echo $x
echo "-map [audioWithGain]"

Mac 12.7 上的输出是

-map t
-map [audioWithGain]

为什么,哦为什么?当然在 Linux 上完美工作。

有解决方法的想法吗? 我尝试了各种

x="-map"" "'[audioWithGain]' 

诸如此类,无济于事!

但这有效:(!)

x="-map [hGain]"
bash macos
1个回答
0
投票

[audioWithGain]
被解释为字符类并进行匹配。有一个名为
t
与其匹配的文件或目录。

双引号变量以防止它:

echo "$x"

否则,bash运行的是

echo -map [audioWithGain]
© www.soinside.com 2019 - 2024. All rights reserved.