- 1 名前:名無しさん@お腹いっぱい。 [2008/05/20(火) 20:58:04 ]
- シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。 □お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashなので特に注意。 ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルスクリプトのことをシェルってゆーな ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 シェルスクリプト総合 その10 pc11.2ch.net/test/read.cgi/unix/1202725267/
- 142 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:18:41 ]
- >>140
i=0;while [ $i -le 23 ];do printf '%02d00\n' $i;i=`expr $i + 1`;done >>141 bash依存失格。
- 143 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:33:37 ]
- seqが使えるなら
seq -f "%02g00" 0 23 awkで書くなら awk 'BEGIN { for (i = 0; i < 24; i++) printf("%02d00\n", i) }'
- 144 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:51:55 ]
- printfがないOSもある。
i=0;while [ $i -le 23 ];do expr 0"$i"00 : '.*\(....\)';i=`expr $i + 1`;done
- 145 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 20:58:05 ]
- exprはどこにでもあるの?
- 146 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/01(日) 21:05:12 ]
- exprもないOSのために、
純正シェルで、内部コマンドのみで実現。 z=0;set -;while [ $# -le 23 ]; do [ $# -ge 10 ] && z=; echo $z$#00; set "$@" d; done
|

|