代码之家  ›  专栏  ›  技术社区  ›  marcin2x4

Shell/Bash-分配cli结果后字符串变量中的额外字符

  •  0
  • marcin2x4  · 技术社区  · 4 年前

    在我的一个变量中,我存储来自aws cli命令的结果(字符串)。 " " 但将其作为参数注入显示额外的字符( &#34 )在字符串的开头和结尾添加。

    如何消除这些问题?它们代表什么?

    代码和错误日志:

    dms_arn=$(aws dms describe-replication-tasks --filter Name=replication-task-id,Values="$dms_name" `--query=ReplicationTasks[0].ReplicationTaskArn --region us-east-1)`
    echo Stopping Task "$dms_arn"
    
    
    build   02-Nov-2021 18:52:01    Stopping Task "arn:aws:dms:us-east-1:account:task:XYZ"
    error   02-Nov-2021 18:52:02    
    error   02-Nov-2021 18:52:02    An error occurred (InvalidParameterValueException) when calling the StopReplicationTask operation: Invalid task ARN:  "arn:aws:dms:us-east-1:account:task:XYZ"
    
    2 回复  |  直到 4 年前
        1
  •  2
  •   dan    4 年前

    &#34 是双引号的html代码( " )。双引号正在转换为html代码。

    尝试使用 —output text aws 命令(这样您就不会得到引号)。请参阅有关输出格式的文档: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output-format.html

    如有必要,可以使用shell参数展开删除换行双引号:

    dms_arn=${dms_arn%\"}
    dms_arn=${dms_arn#\"}
    
    echo "$dms_arn"
    # quotes are gone
    
        2
  •  2
  •   user2314737    4 年前