我有一个包含文件列表的'testfiles'文件 EX- TC1 TC2
在脚本中调用上面的文件
test=`cat testfiles`
for ts in $test
do
feed.sh $ts >>results
done
当'testfiles'中只有1个测试文件时,此脚本运行正常,但是当有多个文件时,它会因'找不到文件'而失败
如果这是正确的方法,请告诉我
答案 0 :(得分:0)
你必须逐个读取文件,因为你正在使用testfiles ='Tc1 Tc2'cat正在搜索不存在的名为'Tc1 Tc2'的文件所以使用cut命令用“”作为分隔符和rad文件一循环中的一个。或者您也可以使用sed命令来分隔文件名
答案 1 :(得分:0)
如果文件名没有空格或其他棘手的字符,您的方法应该有效。成功处理文件名中的空格的方法是:
while IFS= read -r ts
do
feed.sh "$ts" >>results
done <testfiles
如果您的文件名中包含换行符,则上述操作无效,您需要创建testfiles
,其名称用空字符代替换行符。
让我们考虑原始代码。当bash
替换$test
语句中的for
时,所有文件名都显示在同一行,而bash
将执行分词,这会使任何文件名混乱包含白色空间。 feed.sh $ts
行也是如此。由于未引用$ts
,因此它也会进行分词。