如何获取shell中列表中每个参数的第一个参数

时间:2016-01-31 09:29:06

标签: list shell for-loop

我在shell中有一个列表。

LISTNODES='
name1 labels="{..}"
name2 labels="{...}"
'

现在我循环遍历列表(for-loop)。但我只想把这个名字从循环中取出来。

这样的事情

for i in $LISTNODES; do
    i = #command to keep name (and cut labels...)
    echo $i #this output must be name1 and for the next loop name2

3 个答案:

答案 0 :(得分:1)

使用

${i%% *}
循环中的

(重要提示:%%*之间必须只有一个空格

答案 1 :(得分:0)

您可以使用awk。

echo "$LISTNODES" | awk '{print $1}' 

答案 2 :(得分:0)

我不明白你的名单。我为你做了一个阵列:

declare -a LISTNODES=('name1 labels="{..}"' 'name2 labels="{...}"' 'name3 labels="{a b c}"')
for i in "${LISTNODES[@]}"; do
   echo "$i can be split into"
   echo "Name: ${i%% *}"
   echo "Labels: ${i#* }"
done