在shell中使用'list variables'。如何为列表中的所有元素添加前缀?

时间:2013-01-24 05:25:02

标签: shell

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

list =“A B C”

for $ in $ scripts 做   //一些逻辑 完成

echo $ list

以上示例的所需输出为:

  
    

右 - 右 - 右 - C

  

2 个答案:

答案 0 :(得分:1)

我想我理解你的问题,但并不是100%清楚。但我建议使用BASH作为shell。以下是我要创建您要求的输出的方法。

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

答案 1 :(得分:1)

使用printf并利用其re-using the format if extra arguments are given的功能:

# specifically, do not quote the variable so that 
# the shell can split it into words
printf "right-%s " $list

# the printf command does not emit a newline, so 
# do it here
echo

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

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