为什么我无法在Bash中捕获AWS EC2 CLI输出?
发布时间:2020-12-15 18:33:10 所属栏目:安全 来源:网络整理
导读:我试图在 Bash脚本命令中捕获aws ec2 delete-snapshot的输出,但是我无法捕获输出.我已经尝试过result = $(command),result =`command`等,但是当我尝试回显$result时,那里什么都没有. 这是一些示例输出. root@host:~# aws ec2 delete-snapshot --snapshot-id
我试图在
Bash脚本命令中捕获aws ec2 delete-snapshot的输出,但是我无法捕获输出.我已经尝试过result = $(command),result =`command`等,但是当我尝试回显$result时,那里什么都没有.
这是一些示例输出. root@host:~# aws ec2 delete-snapshot --snapshot-id vid --output json>test A client error (InvalidParameterValue) occurred when calling the DeleteSnapshot operation: Value (vid) for parameter snapshotId is invalid. Expected: 'snap-...'. root@host:~# aws ec2 delete-snapshot --snapshot-id vid>test A client error (InvalidParameterValue) occurred when calling the DeleteSnapshot operation: Value (vid) for parameter snapshotId is invalid. Expected: 'snap-...'. root@host:~# cat test root@host:~# testing=$(aws ec2 delete-snapshot --snapshot-id vid) A client error (InvalidParameterValue) occurred when calling the DeleteSnapshot operation: Value (vid) for parameter snapshotId is invalid. Expected: 'snap-...'. root@host:~# echo $testing root@host:~# 我需要自动创建和删除快照,但我无法捕获输出. 还有其他人遇到过这个问题吗?
> operator仅重定向stdout(“标准输出”)或“文件描述符1”.错误消息通常打印在不同的文件描述符2,stderr上(“标准错误”).在终端屏幕上,您将看到stdout和stderr.
> operator更像是1>的快捷方式,而且只重定向stdout. 2> 2运算符类似于1>但它不是重定向stdout,而是重定向stderr. user@host$echo hello world >/dev/null user@host$echo hello world 1>/dev/null user@host$echo hello world 2>/dev/null hello world user@host$ 因此,要将stdout和stderr重定向到同一文件,请使用> file 2>& 1. user@host$echo hi 2>/dev/null 1>&2 user@host$ 这说,“将echo的stderr重定向到/ dev / null,并将stdout重定向到stderr. user@host$curl --invalid-option-show-me-errors >/dev/null curl: option --invalid-option-show-me-errors: is unknown try 'curl --help' or 'curl --manual' for more information user@host$curl --invalid-option-show-me-errors 2>/dev/null user@host$ user@host$curl --invalid-option-show-me-errors >/dev/null 2>&1 user@host$ 在现代Bash中,您还可以使用&>将两个流重定向到同一个文件: user@host$curl --invalid-option-show-me-errors &>/dev/null user@host$ 所以对你来说,具体来说,使用: aws ec2 delete-snapshot --snapshot-id vid --output json >test 2>&1 要么 aws ec2 delete-snapshot --snapshot-id vid --output json &>test (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |