簡體   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