- 1 名前:名無しさん@お腹いっぱい。 [2007/02/15(木) 14:28:44 ]
- シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。 まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。 前スレ シェルスクリプト総合 その7 pc10.2ch.net/test/read.cgi/unix/1157601611/
- 170 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 12:08:23 ]
- >>166
適当なループ回して試してみろ。 testが内部コマンドである現在のシェルでも、 case使った方が、if [ ... ] よりも若干速いよ。 おそらく、内部コマンドとはいえ、独立したコマンドとして 内部的に実行するオーバーヘッドがtestにはかかるんだろう。 caseの場合はシェル本体が直接解釈するから オーバーヘッドはtestよりも少ないと。
- 171 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 14:06:00 ]
- >>170
釣りか天然か... 判断に苦しむ。
- 172 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 14:20:05 ]
- >>171
釣りじゃないだろ。実験してみろ。time sh -c '...' とかで計れる。 確かに caseの方がちょっと早い。
- 173 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 14:34:36 ]
- >>171
おかしなところがあるなら具体的に指摘してみればいいじゃない
- 174 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 14:37:35 ]
- だね。あと、zshだと何故か違いが顕著になる。
$ time zsh -c 'for i in `seq 1 10000`; do [ a = a ] && :; done' real 0m3.051s user 0m2.705s sys 0m0.207s $ time zsh -c 'for i in `seq 1 10000`; do case a in a);;esac; done' real 0m0.915s user 0m0.703s sys 0m0.204s ↓おまけ。[ ]の代わりに [[ ]] にすると、内部コマンドじゃなく、 直接のシェル文法になるので、早くなる。 $ time zsh -c 'for i in `seq 1 10000`; do [[ a = a ]] && :; done' real 0m1.708s user 0m1.201s sys 0m0.402s
- 175 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 15:41:12 ]
- >>173
おかしなところは推測の部分。単に実装の違いだけでしょ。 ksh(93) case 0.65 real 0.46 user 0.17 sys test 0.58 real 0.46 user 0.10 sys pdksh case 23.23 real 22.45 user 0.20 sys test 4.96 real 4.74 user 0.14 sys bash2 case 3.52 real 3.21 user 0.24 sys test 4.26 real 3.93 user 0.25 sys ash case 0.38 real 0.28 user 0.09 sys test 0.52 real 0.45 user 0.05 sys
- 176 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 17:55:22 ]
- >>175
その実装の違いを推測してるのではないか? なので、おかしくない。 ちなみに俺の環境では、kshでもtestよりcaseの方が速かったよ。
- 177 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 18:59:53 ]
- つまり、testよりcase使え、って言うテクは今でも生きてるってわけか。
- 178 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 20:43:22 ]
- bash3 [[
real 0m1.758s user 0m1.562s sys 0m0.160s bash3 case real 0m1.515s user 0m1.341s sys 0m0.150s 確かに少しだけど、case の方が速いね
- 179 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 20:53:55 ]
- >>178
いや、[[じゃなくて [ と caseを比較するという話だが。 速い順に、 case > [[ > [ となると思う。
- 180 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/03(土) 21:13:01 ]
- >>179
あ、そうだったっけか。 bash3 [ real 0m2.388s user 0m2.042s sys 0m0.370s
- 181 名前:名無しさん@お腹いっぱい。 [2007/03/04(日) 21:32:58 ]
- Bashにおいて以下の条件で動くシェルスクリプトを書く場合、どのように書けばよいのでしょうか?
ディレクトリ名とその中にあるファイルサイズが0のファイル名を出力する。 補足1:ディレクトリが特定されていない場合は、現在シェルが働いているディレクトリ名を出力する。 補足2:もし引数がディレクトリ名でない場合は、すべてのコマンドラインの引数にエラーメッセージを出力する。 補足3:ファイル名の一番最初の文字が、「.」の場合は無視するようにする。
- 182 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 21:54:16 ]
- >>181
問題に曖昧なところがあるけど、こういうことか? bashじゃなくてもB-sh共通で動く。 dir=${1-.} if [ ! -d "$dir" ]; then echo "$dir is not a directory" 1>&2 exit 1 fi for f in "$dir"/* do if [ ! -s "$f" ]; then echo "$f" fi done
- 183 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 21:55:25 ]
- 「すべてのコマンドライン」の意味がちょっと判らないけど、
大体こんな感じじゃない? usage() { echo "Usage: ..." 1>&2 exit 1 } test -d $1 && find $1 -not -name '\.*' -size 0 -print || usage() ただし補足1はGNU findの機能を使ってるので、どのfindでもということなら $1が空だった場合の扱いを自分でする必要がある。あと、「.」で始まる フォルダは処理したいのなら、find の条件をもうちょっと詰める必要がある。
- 184 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 21:59:31 ]
- 宿題にマジレスはご遠慮ください。本人のためになりません。
- 185 名前:名無しさん@お腹いっぱい。 [2007/03/04(日) 22:01:31 ]
- >>182
レスありがとうございます。 問題文は元々英語の為、変な訳になって細かい部分が伝わらず申し訳ありません。 英文ですが、元の問題はこちらです。ttp://user.ftth100.com/log/up/log/3569.gif
- 186 名前:181 [2007/03/04(日) 22:21:53 ]
- >>183
分かりやすい解説付でありがとうございます。 この場合、 test -d $1(ディレクトリ名を引数1に格納) && find $1 -not -name '\.*' -size 0(ファイル名の頭文字が「.」、サイズが0の物をはじく) -print || usage() (結果をusage()に返し、出力) usage() で、正常ならば結果を出力。エラーならば1>&2が働きエラーを表示。そしてexitで終了。 といった感じでしょうか?
- 187 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 22:46:22 ]
- >>185
この問題って出所はどこなの?
- 188 名前:181 mailto:sage [2007/03/04(日) 23:16:28 ]
- >>187
Unix and Shell Programmingという洋書です。
- 189 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 23:23:20 ]
- >>184
>>181 のいう通りなので、後は自分で解読してみてください。
- 190 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/04(日) 23:24:06 ]
- しまた、181 <-> 184 ね
- 191 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 14:36:49 ]
- >>186
短絡評価でぐぐれ
- 192 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 15:46:28 ]
- >>135
sed -n '/^[yn][eo]/p;s/^IPアドレス.//p' data.txt | fmt -w 18 | tr ' ' ,
- 193 名前:192 mailto:sage [2007/03/05(月) 15:55:14 ]
- ああ先頭が ne とか yo で始まる行があるとだめなので、
yes/no 個別に書くべきですね。 それとスペースを数えると正しくは fmt -w 19 だ ww
- 194 名前:192 mailto:sage [2007/03/05(月) 16:14:27 ]
- ああ、やっぱ駄目だ。
スレ汚し済まない。
- 195 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 16:49:38 ]
- >>135
perl -ne 'BEGIN { $/ = "----\n" } /(yes|no).*(\d+(?:\.\d+){3})/s && print "$1,$2\n"'
- 196 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/05(月) 17:46:13 ]
- >>135
sed -f 135.sed $ cat 135.sed /^----/{N s/^----\n// x d b } /^IPアドレス /{ s/IPアドレス /,/ x G s/\n// b } d
- 197 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 17:04:39 ]
- 一連のアクションが3回実施され(割り込み重複なし)
一行ずつ一つのログファイルに延々と結果が記載されます。 100 ABC 101 200 DEF 201 …こんな感じで3行ずつが一連のアクションです。 これを以下のように整形したいのですが、妙案は有りますでしょうか? 100,ABC,101 200,DEF,201 ご教示いただければ幸いです。
- 198 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 17:29:18 ]
- >>197
sed 'N;N;s/¥n/,/g' む、あたまに余計な空行が付くな。
- 199 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 17:31:06 ]
- ああ、勘違いだった。198でいいわ。
- 200 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/07(水) 18:03:28 ]
- >>199
やっぱりsedを使うのかな?と思い本を見ていたところでした。 なるほどNで行数分読み込んで、改行\nを,に置き換える…。 見れば直ぐに解りますが、これを0から考えるのは大変でした。 今度は誰かに教えれるよう、頑張ります。 素早いご解答ありがとうございました!
- 201 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:24:02 ]
- どうしても分からないので教えてください。
利用者が指定した文字列の書いてあるファイルを読み込んで、 配列に文字列を一つずつ格納し、その文字列を順番に出力させたいのですが、 どのようにすれば良いのでしょうか?
- 202 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:32:35 ]
- >>201
どのシェルよ? 少なくともピュアBourneシェルには配列はない。
- 203 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:33:26 ]
- >>202
申し訳ありません。bashです。
- 204 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:37:11 ]
- >>201
tr ' ' '¥012' < ユーザーが指定したファイル | sort という意味? 指定したファイルの中はどんな構造なの? 1行に1語なのか、フリーテキストか。
- 205 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:40:27 ]
- >>204
指定したファイルは、おっしゃる通り、1行1語のテキストファイルです。 Sapporo Tokyo Osaka Nagoya Fukuoka といった感じです。 単純に中身を表示するだけなら、 echo -n "ファイル名を入力してください:" read x cat $x でよいと思われるのですが、一度配列に全文字列を格納してやるので困っています…。
- 206 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:46:39 ]
- 言ってる意味が分からん。
sort そのファイル とするのとは違うの?
- 207 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:55:10 ]
- >>206
sort ファイル とは違い、この場合だと、 array[0]=Sapporo array[1]=Tokyo array[2]=Osaka array[3]=Nagoya array[4]=Fukuoka i=0 while [$1 -le 5] do echo ${array[$i]} let i=$i+1 done 読み込んだテキストファイルをこのような感じで出力させたいです。
- 208 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 12:58:49 ]
- 宿題は自分でやりましょう。
- 209 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 13:05:51 ]
- >>201
シェルスクリプトじゃなきゃいかんの? perlかなんか使った方が楽じゃない?
- 210 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 13:12:43 ]
- とりあえず、「順番に」が読んだ順にという意味であって
「整列させて」という意味ではないことは理解した。
- 211 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 13:16:34 ]
- while read word; do
words=($words $word) done < 指定したファイル してあとは一緒。
- 212 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 13:43:20 ]
- >>209
perlじゃ駄目なんです。 >>211 echo -n "ファイル名を入力してください:" while read word; do words=($words $word) done < $word という事でしょうか?
- 213 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:02:36 ]
- 違う。
- 214 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:07:43 ]
- >>213
すいません・・・ どうやれば良いのでしょうか?
- 215 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:10:26 ]
- <の後ろに書くのは、>>207のx
echo -n "ファイル名を入力してください:" read source while .... done < $source あとは出力のためのループ
- 216 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 14:52:24 ]
- >>215
echo -n "ファイル名を入力してください:" read source while read word; do words=($words $word) done < $source cat $source | while read do echo $words let source=$source+1 done でやってみましたが、テキストの最初の文字列しか表示されません。 後半の出力ループがいけないのでしょうか?
- 217 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:06:49 ]
- ああ、ごめん、bashじゃなくzshでやってたわ。
- 218 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:12:44 ]
- bashで配列にpushする方法がわからん。
代わりに一パラメータで逃げてみた。 while read word; do set -- $* $word done < $source for word in $*; do echo $word done
- 219 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:18:07 ]
- 訂正
×一パラメータ ○位置パラメータ あんど、こう書くらしい。 while read word; do size=${#words[@]} words[$size]=$word done < $source for word in ${words[@]}; do echo $word done
- 220 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:24:40 ]
- bash限定スクリプトは、以降はこちらへ
↓ pc11.2ch.net/test/read.cgi/linux/1154578200/ ここはBourneのみでよろしこ。
- 221 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:49:17 ]
- >>219
動作確認出来ました。本当にありがとうございました。 >>220 誘導ありがとうございます。 スレ違いで申し訳ありませんでした。
- 222 名前:名無しさん@お腹いっぱい。 [2007/03/08(木) 15:53:31 ]
- shです
教えてください #!/bin/sh COUNTER=0 while [ $COUNTER -lt 100 ]; do mv "$COUNTER".jpg /home/more/ let COUNTER=COUNTER+1 done こんな感じのとき最初の10までが1桁になってしまうのですが 01 02 03,,,, 行頭に0を付けた2桁で処理するのはどうすれば良いのでしょうか? 00-09と10-99でループをわけるしか無いのでしょうか?
- 223 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 15:59:51 ]
- 最近の環境ならprintf外部コマンドがあるんじゃない?
mv `printf %02d $COUNTER`.jpg /home/more なければ mv `echo "0$COUNTER" | sed 's/0*¥(..¥)$/¥1/'`.jpg /home/more とか、 mv `echo "0$COUNTER" | rev | cut -b1,2 | rev` /home/more とか。
- 224 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:09:12 ]
- >>222
for COUNTER in `seq -w 0 99`; do : ...; done ↑でループすれば桶。 あと、letコマンドは純粋な shには無いぞ。
- 225 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:11:22 ]
- ただ、>>222 がやっていることをやるだけなら、
そもそもループすら不要で、 mv [0-9][0-9].jpg /home/more だけで一発。シェルは不要。
- 226 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:11:48 ]
- seqもあったりなかったり
- 227 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:12:07 ]
- >>223
ありがとうございました。 最終行でうまくいきました。 上の2個も含め手法を理解するように勉強してみます
- 228 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:15:29 ]
- (たとえば) [0-9][0-9] を展開しているのはシェルですぅ
ので不要じゃないわよ>>225
- 229 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:16:49 ]
- >>228
お約束どおり釣れましたよ。おめでとう。
- 230 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:18:58 ]
- >>224-226
ありがとう。 実際にはdateから自動生成された莫大な 画像データを部分的に抽出しながら動画生成を 行うので 例に出したのより多少複雑に書き直します seqも実験してみます
- 231 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:20:11 ]
- touch [0-9][0-9].txt
[root@localhost /tmp]$ ls [0-9][0-9].txt となります。 00.txtから99.txtを作りたいのですが…
- 232 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:20:18 ]
- BSDだとseqの代わりにjotだったかな。
- 233 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:23:11 ]
- zsh があるなら
zsh -c 'touch {00..99}.txt' とか
- 234 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:26:04 ]
- 231は空のディレクトリで touch *.txt やったときに
どういう結果になってほしいんだろう。
- 235 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:27:16 ]
- zsh -c 'touch {00..99}.txt'
は、書かれてしまったから touch `seq -s ".txt " -w 99"`.txt
- 236 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:27:59 ]
- シェルってゆうな。クズ。
- 237 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:28:49 ]
- >>234
00.txtから連番で99.txtまでのファイルが欲しいんでしょ
- 238 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:30:36 ]
- >>236
いつものお約束も釣れましたよ。おめでとう。
- 239 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:31:17 ]
- シェルっていうな
- 240 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:35:08 ]
- >>233 >>235
ありがとうございました! zshって凄いですね。 でも、それに依存しないよう >>235さんの方法を覚えます。
- 241 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:38:39 ]
- >>223 のprintf以外の方法だとちょっと無駄。
exprを使うのが定石。 expr 0$COUNTER : '.*\(..\)'
- 242 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:40:10 ]
- seqもない場合があるけどね
- 243 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:43:23 ]
- >>235 の seq、間違ってるよ。最後の .txtが余分なのと、"が1個余分。
- 244 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:46:42 ]
- >>235 よりも、
seq -f %02g.txt 0 99 の方がエレガント。
- 245 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:53:02 ]
- >>243
-sは間に挟む文字列だから最後の.txtがないと、 00.txt ... 98.txt 99 で終わってしまうぞ。 でも正解は>>244。
- 246 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 16:57:54 ]
- >>244
確かにこっちなら完璧に出来ますね。 ところで %02g と言うのは何なんでしょうか?
- 247 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 17:06:19 ]
- >>246
man seq つーか man 3 printf
- 248 名前:201 mailto:sage [2007/03/08(木) 18:43:31 ]
- >>219
最後にもうひとつだけ質問させてください。 出力をする時に配列の反対(リバースオーダー)から出力をするのはどうやれば良いのでしょうか? 例えば、 Tokyo Osaka Nagoya とあったら Nagoya Osaka Tokyo と出力されます。
- 249 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 18:46:19 ]
- >>248
tac
- 250 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 18:51:21 ]
- for ...
done | tac のようにパイプすればいいのではないでしょうか。 tacがない環境では、 for ... done | sed '1!G;h;$!d'
- 251 名前:201 mailto:sage [2007/03/08(木) 19:14:20 ]
- ありがとうございました。
これでなんとか単位が取れます
- 252 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 19:25:38 ]
- はぁ? 単位?? 宿題禁止なわけだが、、答えて損した、、
- 253 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/08(木) 19:46:30 ]
- 上で指摘されてるのに気付けよ
- 254 名前:名無しさん@お腹いっぱい。 mailto:@@@ [2007/03/09(金) 00:33:46 ]
- ファイルを1行ずつ読み込んで配列に入れたいとおもってまつ。
↓みたいに書いてみたのですがエラーでちゃいます。なぜ?? #!/bin/csh set ALLCOUNT = 5 @ CT = 1 @ NO = 3 @ CN = "" while ( $NO <= $ALLCOUNT ) set CN[$CT] = `sed -n "$NO p " job.txt @ CT ++ @ NO ++ end
- 255 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 01:11:36 ]
- シェルスクリプトでは、sh だろうと csh だろうと、
配列を使おうと思った時点で負け。別の方法を探すべし。
- 256 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 01:17:09 ]
- >>254
>>201と同じ学校の人?
- 257 名前:名無しさん@お腹いっぱい。 mailto:@@@ [2007/03/09(金) 01:19:14 ]
- >255
ダメっぽ? >256 いや趣味
- 258 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 07:50:56 ]
- cshの時点で負け。
それが宿題だとすると、そんな教官がいるような学校に 進学した時点で負け。
- 259 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 07:52:39 ]
- 思考停止論か
- 260 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 07:54:46 ]
- 宿題で「cshで書け」と指定されている場合以外に、
cshで書かなければいけない合理的な理由は存在しない。 趣味なら自分で研究すること。
- 261 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 17:07:47 ]
- シェルスクリプトならファイルが配列ってことで
- 262 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 19:22:22 ]
- インデックスによるアクセスが必要ならポジションパラメータ使うだろ。普通。
- 263 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/09(金) 21:47:41 ]
- 配列も、位置パラメータも
所詮人間がデータ構造を解釈しているだけの話。
- 264 名前:名無しさん@お腹いっぱい。 [2007/03/10(土) 21:31:59 ]
- 201が宿題やったせいで254も宿題思われてるのかw
というより口だけで実は分からないだけですかおまいら。
- 265 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 21:37:01 ]
- >>264
宿題かどうかが問題なんじゃなくて、cshのスクリプトは論外ということ。 誰も答えるはずがない。
- 266 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 21:44:39 ]
- 自演乙
- 267 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 21:45:26 ]
- / / ,. -'"´ `丶、、 ヽ
__l // / | \ \\ ゙、 / ̄ ̄ ̄ ̄ ̄ ̄ / :::|| / / / l l ヽ ヽヽド、 / l::::::::::|| / / / ! l ヽ ヽ ヽヽ ||:::::ヽ | l 十`` 十_ヽ 斤.::::::::||/ / //! ハ l ! ヽ ', ゙ヽ||::::::::勺 | レ d、 (_| _) |ll|i :::::::|| l l イ l /!l | ヽ ト、|、 ト、 l l、||::::::::}ll| | ┼‐、ヽ ┴┴ |ll|ヽ:::::|l !l |l!‐!‐ト、l ヽ | l | ヽ | l i l l||:::::::/!l| | ノ 月 l | |lll| `ー! l | l 」-=ミ|`ヽ ヽ | !-‐!‐|-l、|} l |r、〃|ll| | 二二`` l__ヽ L!l | l | 〃{ノ::::iヾ ヽ! ,. =-ミ、!ハ l !"´ |ll| | ノ _) {l |!l | ヽ `ー" ' トイ:::}ヾ | l | |ll」 | ─ァ ヽ |l !| `二ノ '| || | /\ l |', | /)|l l | ┼‐、ヽ l | ゙、 ` ´ /-イ| l | ノ !| \ ヽニヽ , ′/゙! l ∠ '⌒) | |ヽ、 ー / 〃 | ! | 「 ,.rr| 丶、 ,.. '´ト、 l′ ヽ ゚ l::l {:| ` ´ |::}} \______ _. -‐1::ヽ' -、 _,.. -‐ン::|ヽ、 _.. -‐ "´ |:::::::::`ゝヽ /rJ::'"´:::::::! ` 丶、
- 268 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 21:52:54 ]
- だいたい木曜辺りに宿題が出るのか?
- 269 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 22:04:01 ]
- 宿題は2chでやってもらうのが当たり前です。
- 270 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/10(土) 22:11:17 ]
- 逆に、宿題を出す立場の人間です。
毎回、問題を出すのにネタが尽き気味で大変です。 宿題が出た人、どんどんその問題を書き込んでください。 一部変えて出題に使わせていただきます。
|

|