Bash脚本:将文件路径数组转为工具的多个参数
Bash脚本中传递文件路径数组给mergecap的正确方法
不用折腾xargs,Bash本身就支持直接将数组元素作为独立参数传递,完美适配mergecap的需求:
- 先定义你的文件路径数组:
file_array=("/path/1.pcap" "/path/2.pcap" "/path/带空格的路径.pcap")
- 直接用数组展开语法执行mergecap:
mergecap -w /path/out.pcap "${file_array[@]}"
为什么这能行?
"${file_array[@]}" 是Bash里的标准数组展开写法,双引号包裹的情况下,数组里的每个元素都会被当成独立的命令行参数,哪怕路径里包含空格、特殊字符也能正确识别,完全符合mergecap需要多个文件参数的要求。
之前用xargs踩坑的原因
xargs默认会把输入按空白分割成参数,但如果你把数组转成单字符串传给它,所有路径会被拼成一个整体,mergecap自然只会把它当成单个文件参数处理,这完全是绕远路了。
内容的提问来源于stack exchange,提问作者xardas
相关产品推荐
相关产品推荐

