我想在一行中运行以下命令:
$ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
$ python ./awslogs-agent-setup.py --region eu-west-2
我该怎么做?
我尝试了以下
$ curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s | python --region eu-west-2
但我收到错误:
Unknown option: --
答案 0 :(得分:4)
您可以使用Name
(类似于Password
)从python
读取stdin
口译员,并将其他参数一并传递。
/dev/stdin
由于Barmar指出使用python -
可能是特定于操作系统的,在这种情况下使用curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s |\
python /dev/stdin --region eu-west-2
会更加标准
/dev/stdin
当python -
将文件内容输出到stdout时,您可以将其传递给解释器的标准输入。
或者在curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s |\
python - --region eu-west-2
(curl
)中使用进程替换功能,它允许您将命令的输出视为要从中读取的文件
bash
答案 1 :(得分:0)
为什么不使用&&
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O && python ./awslogs-agent-setup.py --region eu-west-2
如果您想在不创建文件的情况下稍后删除,请执行以下操作:
curl -s https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py | python /dev/stdin --region eu-west-2