私の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

関連情報