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

如何将Docker命令封装为可传参执行的Bash单命令脚本?

容器化nmap包装脚本修改方案

核心修改逻辑

你现有脚本存在两个问题:

  • 命令前加了echo关键字,只会打印命令字符串不会实际执行
  • 写死$1 $2 $3 $4 $5的传参方式最多支持5个参数,参数过多会丢失,也无法正确处理带空格的参数

直接把脚本替换为以下内容即可:

#!/bin/bash
docker run --rm -it instrumentisto/nmap "$@"

关键说明

  • 去掉echo后,脚本会直接执行后续的docker命令,不再仅打印内容
  • 特殊变量"$@"是Bash内置的位置参数透传写法,会把调用脚本时传入的所有参数原封不动传递给容器内的nmap程序,不受参数数量限制,也能自动兼容带空格、特殊字符的参数,不会出现参数拆分错误的问题

使用方法

  1. 保存修改后的脚本,为脚本添加可执行权限:
    chmod +x nmap.sh
  2. 之后即可按预期方式调用,示例:
    ./nmap.sh -A -T4 -Pn 192.168.3.1
    执行效果和手动输入完整docker命令完全一致。

可选优化

如果想全局使用这个容器版nmap,可以把脚本重命名为nmap,移动到/usr/local/bin目录下,之后在任意路径直接敲nmap [参数]即可调用,和原生安装的nmap使用体验完全一致,无需输入长docker命令或携带脚本后缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:36:19