You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Linux Shell脚本传递monitor_id并添加输出参数

实现方案

1. 先修改Python脚本支持命令行参数

原脚本通过交互式输入获取monitor_id,我们改成用命令行参数接收ID和输出路径,这样Shell脚本可以直接传参。修改后的代码如下:

"""
Fetch Datadog monitor details via command line
"""
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
import argparse
import sys

def main():
    # 解析命令行参数
    parser = argparse.ArgumentParser(description="Get Datadog monitor details")
    parser.add_argument("monitor_id", type=int, help="Target Datadog monitor ID")
    parser.add_argument("-o", "--output", help="Optional output file path (defaults to stdout)")
    args = parser.parse_args()

    # 调用Datadog API
    configuration = Configuration()
    with ApiClient(configuration) as api_client:
        api_instance = MonitorsApi(api_client)
        try:
            response = api_instance.get_monitor(monitor_id=args.monitor_id)
            # 整理输出内容
            result = f"Type: {response['type']}\nName: {response['name']}\nState: {response['overall_state']}\n"
            
            # 根据参数决定输出到文件还是终端
            if args.output:
                with open(args.output, 'w') as out_file:
                    out_file.write(result)
            else:
                print(result)
        except Exception as err:
            print(f"Error: {str(err)}", file=sys.stderr)
            sys.exit(1)

if __name__ == "__main__":
    main()

2. 编写Shell脚本

创建一个fetch_monitor.sh脚本,负责接收参数并调用修改后的Python脚本:

#!/bin/bash

# 检查是否传入了必要的monitor_id参数
if [ $# -lt 1 ]; then
    echo "Usage: $0 <monitor_id> [-o <output_file>]"
    exit 1
fi

# 调用Python脚本,传递所有接收到的参数
python3 /absolute/path/to/your/python_script.py "$@"

脚本使用说明

  1. 给Shell脚本添加执行权限:
chmod +x fetch_monitor.sh
  1. 基础用法(输出到终端):
./fetch_monitor.sh 12345
  1. 输出到文件:
./fetch_monitor.sh 12345 -o monitor_info.txt

关键说明

  • Python脚本用argparse处理命令行参数,支持必选的monitor_id和可选的-o输出参数
  • Shell脚本通过"$@"将所有输入参数原封不动传递给Python脚本,确保参数传递准确
  • Shell脚本先做参数校验,避免用户遗漏必要的monitor_id

内容的提问来源于stack exchange,提问作者Rocco_new97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:05:28