zsh 中字符串中带有特殊字符的变量

zsh 中字符串中带有特殊字符的变量

我正在尝试使用命令行创建一个变量$creds,用于存储我在某些终端会话中反复使用的凭据。-u myusername -p mypass!word当它遵循我使用的命令时,字符串中的值看起来是这样的。

问题出在密码中的感叹号上。无论我怎么尝试,当我使用$creds代替输入时-u myusername -p mypass\!word,登录都会失败,这是因为 ! 被转义了。

我已经尝试过creds="-u myusername -p mypass\!word"creds="-u myusername -p mypass\\!word"最后pass="'pass\!word'"自己尝试一下,看看是否能正确存储密码字符串。

当我使用变量作为命令后面的凭据时,我无法让任何东西工作。我感觉我错过了一个简单的解决方案。

答案1

您需要声明creds 作为数组

creds=( -u myusername -p mypass\!word )

然后您可以像这样简单地将其传递给您的命令:

<command> $creds

相关内容