Shell 与'合作;列出变量';在壳里。如何为列表中的所有元素添加前缀?

Shell 与'合作;列出变量';在壳里。如何为列表中的所有元素添加前缀?,shell,Shell,我有一个(希望如此)简单的问题,我一直试图解决,但没有取得多大成功。 考虑下面的简单shell脚本: list=“A B C” 对于$scripts中的i 做 //一些逻辑 完成 echo$列表 上述示例的期望输出为: 右-A右-B右-C 我想我理解你的问题,但它不是100%清楚。但我建议使用BASH作为shell。下面是我将如何创建您所要求的输出 #!/bin/bash LIST=(A B C) for VALUE in "${LIST[@]}" do echo 'right-'${VAL

我有一个(希望如此)简单的问题,我一直试图解决,但没有取得多大成功。 考虑下面的简单shell脚本:

list=“A B C”

对于$scripts中的i 做 //一些逻辑 完成

echo$列表

上述示例的期望输出为:

右-A右-B右-C


我想我理解你的问题,但它不是100%清楚。但我建议使用BASH作为shell。下面是我将如何创建您所要求的输出

#!/bin/bash
LIST=(A B C)
for VALUE in "${LIST[@]}"
do
  echo 'right-'${VALUE}
done

使用
printf
并利用其功能:

要将其捕获为新变量,假设bash:

printf -v prefixed_list "right-%s " $list

您假设列表是一个数组。所以,当您执行echo$list时,它将只打印单个元素。我需要的是更新列表中的元素,使其具有前缀,并且在执行echo$list时。。。我应该得到规定的输出。那么我不太确定你的问题是什么。抱歉。list=“A B C”echo$list将以B C的形式提供输出,但list=(A B C)echo$list将以A的形式提供输出,因为它声明为数组here@Ishwar在这种情况下,您可以使用echo-n'right-'${VALUE}代替它。非常感谢Glenn。这正是我想要的:)
printf -v prefixed_list "right-%s " $list