使用参数在一行

时间:2017-12-20 16:48:42

标签: python bash curl

我想在一行中运行以下命令:

$ 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: --

2 个答案:

答案 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

Execute bash script from URL