繁体   English   中英

使用参数在一行上的cURL命令上运行python

[英]Run python, with a parameter, on a cURL command on one line

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

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

你可以让python解释器使用/dev/stdin (类似于python - )从stdin读取并传递其他参数。

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s |\
     python /dev/stdin --region eu-west-2

正如Barmar所指出的,使用/dev/stdin可能是特定于操作系统的,在这种情况下使用python -会更加标准

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s |\
     python - --region eu-west-2

curl将文件内容输出到stdout时,您可以将其传递给解释器的标准输入。

或者在bash<() )中使用进程替换功能,它允许您将命令的输出视为要从中读取的文件

python <(curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -s) --region eu-west-2

为什么不使用&&

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

从URL执行bash脚本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM