for 문의 결과를 가로로 출력하고 싶은데요. 방법이 있나요?

khalisto의 이미지

안녕하세요. 현재 아래와 같은 프로그래밍을 하였는데

#!/bin/bash

z='list apple orange banana melon pineapple'
zn=$(echo $z | awk '{print NF}')

for ((i=1;i<=$zn;i++)); do
zi=$(echo $z | awk '{print $'$i'}')

if [ `expr $i % 2` = 0 ] ; then
echo $zi
fi
done

i가 1부터 원소갯수$zn 까지 1씩 증가하여 반복하고 출력부는 짝수 원소만 출력하는 프로그램입니다.

위를 실행하면

apple
banana
pineapple

와 같이 세로로 결과가 출력되는데 이를 apple banana pineapple 와 같이 띄어쓰기가 들어간 가로 출력이 가능한지

질문드립니다.

qiiiiiiiip의 이미지

원하시는 답은

echo -n "$zi "

가 될 것 같네요.

똑같은 스크립트를 이렇게도 할 수 있겠고요.

z='list apple orange banana melon pineapple'
i=1
for zi in $z; do
    if [ $((i++ % 2)) = 0 ] ; then
        echo -n "$zi "
    fi
done
echo ''

khalisto의 이미지

echo 에 -n 옵션을 넣으니 원하는 결과가 도출되네요.

다른형태의 for 문도 참고해 보도록 하겠습니다.

감사합니다.

khalisto의 이미지

알려주신 방법으로 성공은 하였습니다만 가로 출력결과를 1줄에 n개씩 끊어서 출력하려면

어떤 방법이 있을까요?

qiiiiiiiip의 이미지

echo ""
하면 줄이 나눠집니다.
나머지 계산해서 필요할 때마다 하면 되겠지요.