You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux终端编写含JSON配置的AWS命令时,按回车仅换行无法执行命令的问题求助

嘿,这种小问题卡半天真的超闹心!我来给你捋清楚怎么解决:

你现在遇到的情况是,shell(比如bash)认为你还没把命令输入完——因为你正在输入的JSON被引号/大括号包裹着,shell检测到这些语法符号还没闭合,所以按回车只会换行,不会执行命令。

解决方法有两种,看你习惯哪种:

方法1:直接在终端输入多行JSON(闭合语法后执行)

如果你想手动逐行写JSON,只要确保最后把包裹JSON的引号和大括号都闭合,再按回车就行。举个实际的例子:

aws ec2 run-instances --cli-input-json '{
  "ImageId": "ami-xxxxxx",
  "InstanceType": "t2.micro",
  "MinCount": 1,
  "MaxCount": 1
}'

你可以逐行输入上面的内容,等输完最后的}'之后,按回车,命令就会立刻执行了——之前的换行只是让你把JSON格式写整齐,shell因为单引号没闭合,会一直等待你输入完整个命令。

方法2:用Here-Document更高效地输入多行内容

如果JSON比较长,手动写容易出错,你可以用shell的here-document功能,把JSON内容放在EOF标记之间,这样写完EOF之后按回车,shell就会把内容作为参数传给AWS命令:

aws s3api put-bucket-policy --bucket my-test-bucket --policy "$(cat <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-test-bucket/*"
    }
  ]
}
EOF
)"

另外,如果中途不想继续输入了,按Ctrl+C就能终止当前的输入状态,回到正常的终端提示符。

内容的提问来源于stack exchange,提问作者Ew Na

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 11:17:33