如何编写Bash脚本将文件单行数值作为参数传入现有脚本?
解决方法:将文件中单列数值作为脚本参数传入
以下是几种简单可行的实现方式:
使用xargs(最简洁的单行命令)
xargs可以自动将文件中的每行内容转换为空格分隔的参数,直接传递给目标脚本:xargs script_name < x.txt它会自动忽略文件中的空行,刚好适配你单列数值的文件格式。
使用命令替换转换换行符
通过tr或sed把文件里的换行符替换成空格,再通过命令替换传递给脚本:# 用tr替换换行为空格 script_name $(tr '\n' ' ' < x.txt) # 或者用sed处理(可同时清理多余空格) script_name $(sed ':a;N;$!ba;s/\n/ /g' x.txt)使用Bash数组(更严谨的脚本方式)
如果需要在脚本中做额外处理,可先把文件内容读入数组,再传递所有元素:#!/bin/bash # 读取文件每行内容到数组,忽略换行符 mapfile -t num_list < x.txt # 将数组所有元素作为独立参数传入脚本 script_name "${num_list[@]}"这种方式能避免特殊字符(比如数值中意外出现空格)导致的参数拆分错误,兼容性更强。
内容的提问来源于stack exchange,提问作者Nikita Agarwal
相关产品推荐
相关产品推荐

