2015-06-27 2 views
1

Я пытаюсь напечатать некоторые записи, но я не в состоянии с целью выводаДля цикла в сценарии оболочки

#!/bin/bash 

a='xyx_n' 
b='xzx_n' 
c='xkx_n' 

val=(1,2,4,5) 
#a=($val) 
for ((i=0;i<=3;i++)) 
do 
     echo "$a|$b|$c|${val[$i]}" >> "/tmp/test1" 
done 

Output 

xyx_n|xzx_n|xkx_n|1,2,4,5 
xyx_n|xzx_n|xkx_n| 
xyx_n|xzx_n|xkx_n| 
xyx_n|xzx_n|xkx_n| 

Выход должен быть как ниже

xyx_n|xzx_n|xkx_n|1 
xyx_n|xzx_n|xkx_n|2 
xyx_n|xzx_n|xkx_n|4 
xyx_n|xzx_n|xkx_n|5 
+1

Назначение массива должно быть: 'val = (1 2 4 5)' (без запятой) – anubhava

ответ

2

Проблема с вашей инициализации массива -

#!/bin/bash 

a='xyx_n' 
b='xzx_n' 
c='xkx_n' 

val=(1 2 4 5) 
#a=($val) 
for ((i=0;i<=3;i++)) 
do 
     echo "$a|$b|$c|${val[$i]}" >> "/tmp/test1" 
done 

Output 

xyx_n|xzx_n|xkx_n|1 
xyx_n|xzx_n|xkx_n|2 
xyx_n|xzx_n|xkx_n|4 
xyx_n|xzx_n|xkx_n|5 
Смежные вопросы