bash - Bash 脚本/AWS 集成
问题描述
我正在尝试创建一个 Bash 脚本,该脚本可以从单个命令中删除我的所有 Amazon Transcribe 作业。我创建了以下脚本:
#!/bin/bash
aws transcribe list-transcription-jobs --max-results 100 --query '[TranscriptionJobSummaries[*].TranscriptionJobName]' --output text
while read jobName; do
aws delete-transcription-job --transcription-job-name "$jobName"
done
但是,当它运行时,它会列出转录作业,但不会删除它们。事实上,删除作业后它什么都不做!尽管如此,即使它什么也不做,它也会继续处理这项工作。
关于如何解决这个问题或我哪里出错的任何想法?
解决方案
您需要将aws
命令的标准输出通过管道传输到while read
循环的标准输入中。您还需要切换到read -r
以禁用命令的某些旧行为read
,尽管在这里可能无关紧要。
aws transcribe list-transcription-jobs --max-results 100 --query '[TranscriptionJobSummaries[*].TranscriptionJobName]' --output text |
while read -r jobName; do
aws delete-transcription-job --transcription-job-name "$jobName"
done
关键的修复是|
在第一行的末尾。也许还阅读了基本的 shell 管道。
您的原始命令将简单地将结果列出到标准输出,然后坐在那里等待read
命令从其他地方(实际上是从您的键盘)接收其输入。
如果aws delete-transcription-job
可以以某种方式接受工作列表,也许您可以while
完全取消循环。不幸的是,我不熟悉这个特定的命令。
推荐阅读
- angular - 将 promise 与 observable 合并
- reactjs - react-boostrap-typeahead 使用 formik 重置
- robotframework - 为测试用例生成 Robot Framework 文档
- java - EHCache 在 getCache 之后返回 null
- python - 如何在带有继承的python中使用@classmethod
- python - Python 和 Gtk 的倒计时,timeout_add 的问题
- knockout.js - Knockoutjs 可观察数组到 Excel?
- unix - awk 将引用的日期时间格式转换为 unixtimestamp
- django - 使用 Django 应用授权 BlueJeans API
- javascript - onclick 事件,对象作为引号中的参数