首页 > 解决方案 > 如何在bash中的多行字符串变量的每一行上运行命令?

问题描述

该变量$type是一个多行字符串变量,包含:

car
plane

你可以得到上面发出的输出echo "$type"

我有一个some_command用作$type它的参数之一。

在 bash 中,您将如何执行some_command以使其逐行运行$type即首先some_command将运行使用car,然后它将再次运行使用plane,然后一旦该行为空,循环将停止,即没有剩余的值可以执行some_command

标签: bash

解决方案


最简单的方法(在我看来)是使用xargswith argument -L(limit):

echo "$type" | xargs -L 1 some_command

xargs获取每个输入行并将值作为参数传递给some_command.

some_command也可能有其他论点。xargs在其参数列表的末尾添加输入行并执行它。(但是,可以使用 . 将输入行插入到不同的位置-J。)


推荐阅读