ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

#!/bin/shコミュのfor

  • mixiチェック
  • このエントリーをはてなブックマークに追加

for

またまた失礼します。

現在、
スクリプトを作っています。

単純なループなのですが。。。
下記の方法だと、

4、5、6、7、8、9、10

という風に、表示されます。

それを

04、05、06、07、08、09、10

と表示する方法はあるでしょうか。
日付による1週間という形で表示したいというところです。

for のリストに、04 05 06 07 08 09 10

と書くのもちょっと。。。とも思います(NG)し、
下記のように、出力部分を2つの処理に分けてやるのもどうかと思ったので、

echo 0$f

echo $f

すっきりするやり方があったっら、
教えてください。

最終的には、
これを元に、
スクリプト作成するつもりです。

よろしくお願いします。

---------------------------------------
#!/bin/sh

i=4
h=`expr $i + 6`

for f in ` seq $i $h `

do

echo $f

done
---------------------------------------

コメント(16)

コメントありがとうございます。

説明がわかりにくくて申し訳ありません。
説明不足というより、
訂正したいと思います。

for f in 04 05 06 07 08 09 10

となるようにしたいのですが、
最終的に、
表示される部分ではなくて、
echoは、下記のままにしたいのですが。。。

echo $f


for f in ` seq $i $h `

の部分に反映させたいと思っています。

すみませんが、
スクリプトに関しては、
ほぼ初心者ということで、
もう少し、
わかりやすくお願いします。

申し訳ありません。

スクリプトは苦手なもので、
よろしくお願いします。
ありがとうございます。
出来ました。

>seq ってなんぞやと思ったら Linux にはそういうのがあるんですねぇ…

無知で申し訳ありません。
手当たり次第に、
調べていたもので、
書き込んで動かすという風にしていました。

>for i in `awk 'BEGIN{ for (i = 4; i <= 10; i++) { printf("%02d ", i) }}'`

この辺まで行くと、
ちょっと、自力では無理でした。
ありがとうございます。

iの値を変更するだけで、
反映されるようにしました。

以下の内容です。
おかしなところがあったら、
指摘していただけたらと思います。

ありがとうございました。

-------------------------------------------------------------------------
#!/bin/sh

i=8
h=`expr $i + 6`

for f in `awk 'BEGIN{ for (f ='$i'; f <= '$h'; f++) { printf(
"%02d ", f) }}'` ;

do

echo $f ;

done

---------------------------------------------------------------------
1に補足。(消された2〜4で既出かも)

GNU coreutilsが入っていれば、またはOSで用意されていれば、ですがprintfを使うのが質問そのものの一番簡単な答でしょう。

$ printf "%02d\n" 3
03

Cのprintf()と同等の能力があるそうです。

awkで書くなら、7のようなことをせずにすべてawkで書いたほうがよいです。
$ seq 1 10|while read i;do printf "%02d\n" $i;done

私もfor使わない。昔は使ってたけど。

$ for i in $(seq 1 10);do printf "%02d\n" $i;done
申し訳ありません。
言語やスクリプトに関しては、
ほとんど初心者なので、
わかりません。

このスクリプトは、
この下に、
長く続くのですが、

$f

で、
すべて、
置き換えていくつもりです。

初心者なので、
ちょっとわかりません。

いろいろと申し訳ありません。^^;
初心者を理由に何かサボろうとする人にはイジワルしたくなります。はい。
Linux系OSならgnuのseqでしょうから、seq -w 4 10
man seq しましたか?
Macな自分は、そういうループカウンタ作りたい時は jot 使うなぁ。
と、いまさらながら。
jotてlinuxにもあるのかな?
> 15
Linuxと一括りにされてもあれですが。

そのjotがathena jotとかBSD jotと言われているやつであれば、Debianの場合、公式パッケージに“athena-jot”として存在するようです。

そのパッケージの元になったファイルがSRPMなので、Red Hat系OSにもパッケージがありそうですが、未確認です。

ログインすると、残り6件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

#!/bin/sh 更新情報

#!/bin/shのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング