当我尝试执行以下导出 SENTRY_SECRET_KEY="k(#!st-6eb2y74=@^6s7a67fy5a&@p3y=57#aszb@hs)n^vv0#" 时,出现错误“bash: !st: 未找到事件”,请给我解决方案。
答案1
使用'
而不是"
,你的变量导出就会起作用。
'!' 被解释为历史调用,因此会在命令历史记录中搜索“st”,从而导致出现“未找到事件”消息。
您可以使用以下序列来验证这一点:
ls /etc
a="k!ls"
b='k!ls'
进而:
$ echo $a
kls /etc
$ echo $b
k!ls
答案2
请使用单引号 (') 代替双引号 (")。bash 变量中单引号内的字符串和特殊字符将按字面意思解释。例如,双引号内的 ! 或 $ 符号将被解释为特殊字符。请阅读更多文档。因此您的命令将如下所示:
export SENTRY_SECRET_KEY='k(#!st-6eb2y74=@^6s7a67fy5a&@p3y=57#aszb@hs)n^vv0#'