내 UNIX 기본 스크립트가 내가 하려는 작업을 수행하지 않는 이유는 무엇입니까? (abc/1 abc/2 abc/3 쓰는 방법)

내 UNIX 기본 스크립트가 내가 하려는 작업을 수행하지 않는 이유는 무엇입니까? (abc/1 abc/2 abc/3 쓰는 방법)

나는 이 스크립트를 수행하고 있습니다(zsh를 사용하지만 그다지 중요하지 않은 것 같습니다).

mylist=`seq 1 3`

for i in $mylist ; do echo "abc/$i" ; done

이는 다음을 제공합니다:

abc/1

2

3

보고 싶지만 :

abc/1

abc/2

abc/3

누군가 작동하지 않는 이유/수행 방법을 알아낼 수 있다면 정말 감사하겠습니다.

답변1

간단하게 유지할 수 있습니다.

for i in 1 2 3; do echo "abc/$i" ; done

또는

for i in $(seq 1 3); echo "abc/$i"

산출:

abc/1
abc/2
abc/3

답변2

이런 종류의 작업을 수행하는 또 다른 방법은 중괄호 확장을 이용하는 것입니다.

echo abc/{1..3}

하지만 당연히 줄 바꿈을 요구하므로 다음과 같이 해야 합니다.

abc_strings=( abc/{1..3} )
printf "%s\n" "${abc_strings[@]}"

답변3

방금 이것을 시도했습니다.Zsh 온라인:

for i in `seq 1 3` 
do
echo "abc/$i\n"
done

다음 정보를 얻었습니다.

abc/1

abc/2

abc/3

관련 정보