#author("2024-10-02T11:34:25+09:00","default:yakumo_murakami","yakumo_murakami")
#author("2024-10-02T11:49:13+09:00","default:yakumo_murakami","yakumo_murakami")
[[パソコン汎用]]
[[bash>Shell]]

#contents

こんな感じで記述するのよ。

* タイプ1 [#hae710f8]

 for i in {1..10};do echo $i;done

これはわかりやすいわね。

* タイプ2 [#i039de74]

 for i in `seq 1 10 `;do echo $i;done

seqを使う方法ね。私はこっちで覚えてたかな?

* 引数でループする。 [#u8078776]

** test990.sh [#kc33d6fb]

 #!/bin/sh
 
 for i in "$@";do
    echo $i
 done

** 実行例 [#m18d0a21]

 $ sh  ~/bin/test99.sh  a b c d e f g "OPR EI"
 a
 b
 c
 d
 e
 f
 g
 OPR EI
 $

* ディレクトリの中を配列に取り込んでループ [#n4663b2b]

** コード [#z820a454]

 #!/bin/sh
 
 list=(`ls|xargs`)
 echo "COUNT=${#list[@]}"
 for x in ${list[@]};do
         echo ${x}
 done

** 実行結果 [#hf3778da]

 $ sh ~/bin/test97.sh
 COUNT=8
 20240601_監視端末でWindows
 Update不可の件の調査.7z
 202407_WindwsUpdate不可.txt
 20240800_Outlook更新
 oldTmp
 Phase3
 フィアッセ・クリステラ.txt
 test4
 tmp
 $

* 逆転例 [#j6668785]

ちなみに逆もできるのよ。知ってた?

 for i in {10..1};do echo $i;done

seqを使う方法は知らないわ。誰か教えてくださる?~
一応、手元の環境ではこれで動いたけど、正しいのかな?

  for i in `seq 10 -1 1`;do echo $i;done

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS