问题描述
在使用AWS CLI时,遇到了一个问题。他想要运行一个针对名称中包含特殊字符”!”的资源的AWS CLI命令。他在本地设备上的Centos Docker实例中运行这个命令,如果他运行echo "$SHELL"
命令,显示正在使用bash。但是,当他尝试在CLI命令中使用'test!'
时,却无法正常工作,返回错误信息bash: !: event not found
。他想知道如何解决这个问题。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据用户的回复,他发现将命令放在脚本中可以将特殊字符视为字符串,并且在终端/命令提示符中直接运行时不会出现问题。这个问题只出现在直接从终端/命令提示符中运行命令时,而不是在脚本中运行时。因此,将命令放在脚本中可以解决这个问题。用户的最终目标是将命令作为脚本的一部分,所以这个解决方案解决了他的问题。
方案2
用户还提到他不确定这个问题是否与他使用的shell有关。如果用户想要在终端/命令提示符中直接运行命令,并且仍然遇到问题,可以尝试切换到其他shell来解决这个问题。例如,可以尝试使用zsh
或fish
等其他shell来运行命令,看看是否仍然出现相同的问题。
方案3
如果用户仍然无法解决这个问题,可以尝试更新AWS CLI版本。用户提到他正在使用的AWS CLI版本是aws-cli/1.16.251
。可能存在一些版本相关的问题,更新到最新版本可能会解决这个问题。可以通过运行以下命令来更新AWS CLI:
pip install --upgrade awscli
这将使用pip工具来更新AWS CLI到最新版本。
请注意,根据用户的回复,将命令放在脚本中已经解决了他的问题,所以这些额外的解决方案只是提供给用户作为备选方案,以便他进一步尝试解决这个问题。