シェルスクリプト総合 その13
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2008/10/16(木) 00:48:38スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。
前スレ
シェルスクリプト総合 その12
http://pc11.2ch.net/test/read.cgi/unix/1218277263/
0713名無しさん@お腹いっぱい。
2009/01/14(水) 23:32:52パラドックスを書くな。
-f も、-v も何度でも使える。
0714名無しさん@お腹いっぱい。
2009/01/14(水) 23:35:36「何度でも使える」かどうかを言ってるんじゃないよ。
じゃあ聞くが、
awk -f prog-file
って書く場合に、どうやってawkの引数にプログラムを記述するんだ?
別ファイルじゃなくて、引数に直接プログラムを記述したい場合、
-fオプションは使えないだろw
0715名無しさん@お腹いっぱい。
2009/01/14(水) 23:40:30この一時を以ってしても、
第○引数がどうでも良いことがわかるね。
0716名無しさん@お腹いっぱい。
2009/01/14(水) 23:46:59試してから書け。
awk -f prog 'BEGIN { ... }'
なんて書いても動かないぞ。
awk -f progfile
と
awk progstring
とは
エクスクルーシブ。
同時に使えない。
0717名無しさん@お腹いっぱい。
2009/01/15(木) 00:05:350718名無しさん@お腹いっぱい。
2009/01/15(木) 00:05:56それって言っていることは>>714と同じだよね。
普通に書けば?
0719名無しさん@お腹いっぱい。
2009/01/15(木) 00:09:48だから、>>715 が「書ける」って言ってるから「書けない」と反論してるんだよ。
>>715 は、
awk -f prog-file
と
awk prog-string
を両立した例を示すこと。(不可能だけど)
言っとくけど、
awk -f prog1 -f prog2
じゃ駄目だよ。
あくまで「引数に直接」awkのプログラムを書くこと。
0720名無しさん@お腹いっぱい。
2009/01/15(木) 00:12:090721名無しさん@お腹いっぱい。
2009/01/15(木) 00:16:19>>714 = >>715 = >>716
「awkの -f オプションと、引数直接プログラム記述は両立しない」
と言う主張と、
>>713 = >>715 = >>718
「awkの -f オプションと、引数直接プログラム記述は、『普通に書ける』」
と言う主張と言うことで。
0722名無しさん@お腹いっぱい。
2009/01/15(木) 00:21:400723名無しさん@お腹いっぱい。
2009/01/15(木) 00:25:39頼むからおまえら「シェルスクリプトを書いてます」
なんて、公言しないでくれな。
俺まで同類だと思われると困るから。
0724名無しさん@お腹いっぱい。
2009/01/15(木) 00:40:54これらはある親シェルを起動すると実行されます。
ただ、子シェルでなくて、孫、曾孫シェルの可能性もあります。
この特定ディレクトリにあるスクリプトのうちどれが実際に起動されたかを調べる方法ないでしょうか?
すべてに起動ログをはかせるのはちょっと厳しいです。
0725名無しさん@お腹いっぱい。
2009/01/15(木) 01:09:44B. /bin/shに読まれて、access timeが変るので、ls -ltu してタイムスタンプ確認。
C. ptrace系のコマンド使う
D. /etc/profileでログを取る
0726名無しさん@お腹いっぱい。
2009/01/15(木) 06:39:29もしかして、>>718 の言う「普通に書けば」って、
「普通に -f を使わずに書けば」って意味じゃないの?
でもそれだと、
「シェルスクリプト中から、awkプログラムを直接引数に書いてawkを呼び出す場合、
-fオプションは使わない(使えない)」
という、>>716 = >>714 の主張を認めたことになる。
よって、セカンドステージは >>716 = >>714 = >>719 の勝ちということで終了。
0727名無しさん@お腹いっぱい。
2009/01/15(木) 21:49:07シェルスクリプトスレなんでawkのオプションとかスレ違いなのにこんな話題しかないのかな
0728名無しさん@お腹いっぱい。
2009/01/15(木) 21:56:44-f を何度使ってもいいから、
awk -f プログラムファイル 'プログラム文字列'
が両立できる方法を示せ。
君はそれが「普通に書ける」って言ったんだぞ。
間違いを広めると迷惑だから、
書けないなら「書けない」と訂正したらどうだ。
0729名無しさん@お腹いっぱい。
2009/01/15(木) 22:00:180730名無しさん@お腹いっぱい。
2009/01/15(木) 22:08:26> -f オプションは、関数などをライブラリ化したファイルを読むのに
> 必須であり、
↑って言ってるが、
この発言から、-f オプションで別ファイルに入った関数ライブラリを
読み込んだ上で、さらに awk引数でプログラムを書けると誤解しているようだ。
awk -f 関数ライブラリファイル
って記述したら、
awk引数にプログラムは書けない。
敢えて書くなら、
awk -f 関数ライブラリファイル -f プログラム本体ファイル
ってやるしかない。これではプログラム本体が別ファイルになるから
シェルスクリプトでこんなことはしない。
0731名無しさん@お腹いっぱい。
2009/01/15(木) 22:13:340732名無しさん@お腹いっぱい。
2009/01/15(木) 22:17:44-f も -v も -F も使ってなくて、
argv[1] にプログラムを直接記述する方式だろ。
これが元になって始まった議論だから、
>>665 が、
「awkプログラムを、シェルから見て第1引数(argv[1])に与えることが重要」
って言ったんだよ。
argv[1]の[1]の数字はあまり重要じゃなくて、
argv[2]以降の別引数に分割せずに、ひとつのargv[*]だけにまとめること、
というところが主眼ね。
それを、>>639 にありもしない -f や -v や -Fオプションの話を勝手に持ち出して
>>672 が論旨と違うところに突っ込みを入れたのが間違い。
おそらく、話の流れを全然読んでなくて、途中から一部だけ読んで
突っ込んじゃったんだろうな。
0733名無しさん@お腹いっぱい。
2009/01/16(金) 01:00:47b='cat b.dat'
c='cat c.dat'
改行を*nで表現すれば
sedだけでしょ?
awk使いはきもいよ
0734名無しさん@お腹いっぱい。
2009/01/16(金) 01:02:00賢いな
0735名無しさん@お腹いっぱい。
2009/01/16(金) 01:20:190736名無しさん@お腹いっぱい。
2009/01/16(金) 01:36:34ありがとございます
この中だとaccess timeで確認がいけそうなんで使わせてもらいます
0737名無しさん@お腹いっぱい。
2009/01/16(金) 06:43:02何いってんの?
>>636 は典型的な早とちりの間違い回答
そのことを >>638 がすでに指摘してる
0738名無しさん@お腹いっぱい。
2009/01/16(金) 10:19:150739名無しさん@お腹いっぱい。
2009/01/16(金) 13:45:16のだけど、どのようにすれば可能でしょうか?
bash限定でも構いません。
0740名無しさん@お腹いっぱい。
2009/01/16(金) 13:59:18localhost% bash
の「localhost%」がほしいのか?
ログインシェルなら、そもそも起動したときのプロンプトなんて存在しないし。
0741名無しさん@お腹いっぱい。
2009/01/16(金) 14:23:30bashが起動して、PS1が展開された結果です。
0742名無しさん@お腹いっぱい。
2009/01/16(金) 14:37:300743名無しさん@お腹いっぱい。
2009/01/16(金) 14:54:56stderrをリダイレクトするとJob Controlできないというメッセージがでてじゃまくさい。
bash: no job control in this shell
[user@host ~]$ exit
0744名無しさん@お腹いっぱい。
2009/01/16(金) 14:57:010745名無しさん@お腹いっぱい。
2009/01/16(金) 14:58:05PROMPT=`echo exit | bash -i 2>&1 | sed -e 1d -e s/exit$//`
0746名無しさん@お腹いっぱい。
2009/01/16(金) 15:00:40ナイス!
0747名無しさん@お腹いっぱい。
2009/01/16(金) 15:02:44$ echo exit | zsh -i
すると、zshのプロンプトを出したままになり、exitしてくれない。
0748名無しさん@お腹いっぱい。
2009/01/16(金) 23:44:37b="is a pen"
というふたつの変数があったとします。これらを結合してoptsに代入して
command ${opts}
としたときに、[this] [is a pen] というふたつの引数が渡された、と解釈させるようにしたいのですが
どういう風に連結すればいいんでしょうか。
opts="${a} ${b}" だと [this] [is] [a] [pen]、
opts="\"${a}\" \"${b}\"" だと ["this"] ["is] [a] [pen"]
という風に解釈されてしまします。
0749名無しさん@お腹いっぱい。
2009/01/16(金) 23:56:51もしもperl shellにしておくとperlの起動コストが無くなるとか言うならば
使いたい所だけれど
0750名無しさん@お腹いっぱい。
2009/01/17(土) 00:11:08$ a="this"
$ b="is a pen"
$ set "$a" "$b"
$ python -c 'import sys; print sys.argv[1]; print sys.argv[2];' "$@"
this
is a pen
$
0751748
2009/01/17(土) 00:30:47変数に代入したいんですが、それはできないんでしょうか。
いろんな条件によって順にオプションを追加していく・・って感じのことがしたいんですが。
0752名無しさん@お腹いっぱい。
2009/01/17(土) 00:58:04パラメタにスペースが入らないルールにするのがベスト
それが出来ない場合、かつ、パラメタにダブルクォートが入らない
としてよければ、 >>748 にあるようにダブルクォートで括るのも
手かもしれない。その場合、eval するのが簡単でよいかと。
a="this"
b="is a pen"
opts=\"$a\" \"$b\""
eval command $opts
0753名無しさん@お腹いっぱい。
2009/01/17(土) 01:00:35opts="\"$a\" \"$b\""
0755名無しさん@お腹いっぱい。
2009/01/17(土) 01:37:12set --
set -- "$@" "$a"
set -- "$@" "$b"
って感じで。
0756名無しさん@お腹いっぱい。
2009/01/17(土) 07:16:40要するに、"$@" と同様のことを、一般のシェル変数でやりたいんだろ。
bash限定なら配列使っちゃえ。スペースもダブルクォートもOKだよ。
opts[1]="This"
opts[2]="is a pen"
command "${opts[@]}"
0757名無しさん@お腹いっぱい。
2009/01/17(土) 07:57:50純正シェルでは、set -- では引数が削除されないので注意。
必ず、
set dummy; shift
ってやること。
0759748
2009/01/17(土) 11:58:00失礼しました。
0760名無しさん@お腹いっぱい。
2009/01/17(土) 22:18:35なんで運動靴履くの?
0761名無しさん@お腹いっぱい。
2009/01/18(日) 00:45:06gccのプログラムがエラーを返すまで自動で何度も実行するシェルを書きたいのですが上手くいきません。
下記のような書き方でやってみました。
gccのプログラムはリターン値が-1のときにエラーと仮定しています。
while [ gccのプログラム = 0 ]
do
…
done
レベルの低い質問で申し訳ないのですが、よろしくお願い致します。
0762名無しさん@お腹いっぱい。
2009/01/18(日) 02:13:100763名無しさん@お腹いっぱい。
2009/01/18(日) 07:13:33while true; do command && break; done
0764名無しさん@お腹いっぱい。
2009/01/18(日) 07:26:10while command; do
:
done
ただこれだと>>763と同じで、exit値0以外がエラー。
while ture: do
command
if [ $? = -1 ]; then
break
fi
done
これで-1の時だけエラーと見做す。
0765名無しさん@お腹いっぱい。
2009/01/18(日) 08:02:20もしそうなら、
while [ gccのプログラム = 255 ] ; do hogehoge
とすればよいと思う。でも終了コードを1とかの正数に変えたほうがいいよ
0766名無しさん@お腹いっぱい。
2009/01/18(日) 08:07:21>>761 がつまづいたのは、$? を使ってないことなのか。
でも >>764 の $? の比較は、255と比較すべきじゃないの?
0767名無しさん@お腹いっぱい。
2009/01/18(日) 09:13:30文字列の比較じゃないのに test [ ] を使ってるのが間違い。
while gccのプログラム
do
...
done
でよい。
whileはもともと終了コードをチェックする文法。
通常、testコマンドである [ ] と組み合わされるが、
この場合は gccの終了コードを直接チェックするから、[ ] を書いてはいけない。
(ほかに、$?を使う方法もあるが、while gcc ... って書けば $? も使わなくていい)
0768名無しさん@お腹いっぱい。
2009/01/18(日) 09:16:57すげー、回答者全滅。
>>763->>767 すべて間違い。
以下が正解。
until gccのプログラム
do
...
done
whileとは終了判定が逆の until文を使う。
0769名無しさん@お腹いっぱい。
2009/01/18(日) 10:06:500770名無しさん@お腹いっぱい。
2009/01/18(日) 10:52:25while [ command -ne -1 ]
do
...
done
だろ。
0771名無しさん@お腹いっぱい。
2009/01/18(日) 11:00:06[ $? -ne 255 ]
do
...
done
だろ。
0772名無しさん@お腹いっぱい。
2009/01/18(日) 12:06:06>>763-764が正答なのに。
0773771
2009/01/18(日) 12:27:13実験したら、>>771では駄目だと判明。
もちろん>>763-764も駄目。
>>765-767あたりも参考にすべき。
どうもtestは数値を1バイトの符号なし整数とみなすようだ。
これはunixコマンドの終了ステータスが0-255の範囲であると
定められていることと関係するのだろう。
smpl.c
#include<stdlib.h>
int
main(int argc, char *argv[])
{
int i = atoi( argv[1]);
return (i);
}
jikken.sh
#!/bin/sh
set -x
i=1
while true; do
./a.out $i
if [ $? -ne 255 ]; then
echo "OK"
else
echo "error" && break
fi
i=`expr $i - 1`
done
0774771
2009/01/18(日) 12:32:57終了ステータスを出す側が符号なし整数でだしてた、
いずれにしても。
実行結果
+ i=1
+ true
+ ./a.out 1
+ [ 1 -ne 255 ]
+ echo OK
OK
+ expr 1 - 1
+ i=0
+ true
+ ./a.out 0
+ [ 0 -ne 255 ]
+ echo OK
OK
+ expr 0 - 1
+ i=-1
+ true
+ ./a.out -1
+ [ 255 -ne 255 ]
+ echo error
error
+ break
0775名無しさん@お腹いっぱい。
2009/01/18(日) 13:23:58「gccのプログラム」、「リターン値が-1のときにエラー」、「シェルを書きたい」
0776名無しさん@お腹いっぱい。
2009/01/18(日) 13:54:20揚げ足取ってないで早く教えろよ
0777名無しさん@お腹いっぱい。
2009/01/18(日) 14:06:42だから、>>767 が正解。
255とかにこだわらず、0か0以外で判断すれば良い。
0778名無しさん@お腹いっぱい。
2009/01/18(日) 14:19:59終了ステータスが0-255まで有ると言うことは、
非ゼロで有っても何らかの理由でその数値を利用するため。
ゼロ以外は何らかのエラーで有るという考え方はOKだが、
何でもかんでも処理を中断して良い訳じゃない。
そこは、プログラムの仕様で判断するべきだし、
今回の仕様は>>761
0779名無しさん@お腹いっぱい。
2009/01/18(日) 14:56:19だったら、以下のとおり。
これくらい応用して考えろよw
↓
while gccのプログラム; [ $? != 255 ]
do
...
done
0780名無しさん@お腹いっぱい。
2009/01/18(日) 15:02:04終了ステータス判定に文字列比較演算子を使うな。
要するに、>>761への回答は、
「gccプログラムの終了ステータスは-1には出来ません」
gdb で return(-1); なプログラムを動かしたら、
Program exited with code 0377.
だと。
0781名無しさん@お腹いっぱい。
2009/01/18(日) 15:02:45いや、今回の質問は、そもそもエラーコードの受け取り方を
>>761 が勘違いしていたのが原因なのだから、
その原因に対する的確な答えは、
>>767 が正解。
>>761 で、「リターン値が-1のときにエラー」とは言っているが、
これはその「gccのプログラム」が 「return -1;」と記述されていることを
言っているに過ぎず、質問のポイントとなっているのはエラーコードの値ではない。
実際、-1 とか 255とか、数値の問題でうまく動かなかったのじゃなく、
while [ gccのプログラム = 0 ] みたいな間違った書き方をして動かなかったのだから、
それに対する指摘が正しい回答と言えよう。
その意味でも >>767 が正解。
エラーコード=255を杓子定規に解釈すれば >>779 だが、
これが本当に意図していた回答かどうかは疑問。
0782名無しさん@お腹いっぱい。
2009/01/18(日) 15:18:18そこまで深読みして考えるなら、
もう少し突っ込んで>>775にたどり着くべきだな。
0783名無しさん@お腹いっぱい。
2009/01/18(日) 15:23:28深読みじゃないよ。質問で [ gccのプログラム = 0 ] って書いてるんだから、
エラーコードが 0 かどうかチェックしたいと言う意図だろ。
それが質問の「仕様」。
0784名無しさん@お腹いっぱい。
2009/01/18(日) 15:32:41黙れ。
0785名無しさん@お腹いっぱい。
2009/01/18(日) 15:37:06顔真っ赤にして大変ですねw
0786名無しさん@お腹いっぱい。
2009/01/18(日) 15:56:51while [ `gccのプログラム` = 0 ] だよな。
0787名無しさん@お腹いっぱい。
2009/01/18(日) 15:59:18黙れ。
0788名無しさん@お腹いっぱい。
2009/01/18(日) 16:02:41$?を参照する方法なら文字列比較で構わないよ。
変数の値は文字列だから
0789名無しさん@お腹いっぱい。
2009/01/18(日) 16:37:43だな。
>>780
-eq -ne 等を使う必要があるのは、たとえば、
3 03 003 0003 ... などを同一の値とみなす必要がある時。
[ 003 -eq 3 ] && echo 同じ
とか。
$? の場合は、0〜255の普通の値しか入らない(00とか000とかにはならない)から、
[ $? != 0 ] で判定して良い。
0790名無しさん@お腹いっぱい。
2009/01/18(日) 16:43:52無様なコードでも動けばそれでいいというわけだ。
0791名無しさん@お腹いっぱい。
2009/01/18(日) 16:44:41プログラム終了コードを -1 にしたことが
問題だったのなら、的確な答えは、
>>766 + >>764 が正解
>>767 ではプログラムの終了コードが0か否かしか
判定できない手法なので、残念ながら完全に間違い。
>>761 の要求は満たしてない。
0792名無しさん@お腹いっぱい。
2009/01/18(日) 16:47:05case $? in
0) hoge;;
1) hoge;;
255) hoge;;
*) hoge;;
esac
みたいに書くこともある。
case文は文字列としての比較しかできない。
「$?を文字列として扱ってはいけない」というルールなら、
caseで効率良く書くことも否定することになる。
↓
それは明らかにおかしい。
0793名無しさん@お腹いっぱい。
2009/01/18(日) 16:48:03多分 >>767 と同一人物だと思うんだけど
なんか自分の答えが正解と言い張って、他人の答えを間違いと
断言する性癖があるね
もう少し余裕もった方がいいと思うよ
0794名無しさん@お腹いっぱい。
2009/01/18(日) 16:52:19違う。
質問者が本当に「エラーコードが-1かどうか」を判断したかったのなら、
質問でも、(間違った文法だけど)
while [ gccのプログラム != -1 ]
と書いていたはず。
実際には
while [ gccのプログラム = 0 ]
と書いて質問したのだから、
質問の「仕様」は、エラーコード0かどうかで判断するということで正解。
0795名無しさん@お腹いっぱい。
2009/01/18(日) 17:06:08そもそも、(もし釣り質問で無いなら)
質問者が、どうしていいか訳が分からなくなってる質問内容の
一分だけが、正確に質問者の意図を反映しているというのは強弁。
0796名無しさん@お腹いっぱい。
2009/01/18(日) 17:27:44もう少し前後のレスをよく読むこと。
>>764だと無限ループになる。
0797名無しさん@お腹いっぱい。
2009/01/18(日) 18:32:56>>764
× ture: 綴りも違うし、区切りがコロンになってる
○ true;
>>779
× while gccのプログラム; [ $? != 255 ] 条件部分は1つのコマンド/パイプライン(相当)しか書けない
○ while ( gccのプログラム; [ $? != 255 ] )
雑はやめてくれ
0798797
2009/01/18(日) 18:35:48× 条件部分は〜
○ while の条件部分は〜
0799名無しさん@お腹いっぱい。
2009/01/18(日) 18:40:130800名無しさん@お腹いっぱい。
2009/01/18(日) 19:01:16嘘を書いてるのはお前。
whileの条件部分に書けるのは「パイプライン」じゃなくて「リスト」
リストというのは複数のパイプライン。
while gccのプログラム; [ $? != 255 ]
↑は正しい。
× while ( gccのプログラム; [ $? != 255 ] )
↑
サブシェルが無駄。
0801名無しさん@お腹いっぱい。
2009/01/18(日) 19:08:06whileの条件部分には、( ) なしで2個以上のコマンドが書ける。
>>797
試しに、↓みたいなの実行してみろ。
i=1; while echo $i; i=`expr $i + 1`; [ $i -le 10 ]; do :; done
0802名無しさん@お腹いっぱい。
2009/01/18(日) 19:09:52失礼雑だった
>>800
リストまではOK
> while gccのプログラム; [ $? != 255 ]
>↑は正しい。
は?
0803名無しさん@お腹いっぱい。
2009/01/18(日) 19:14:32おまえ、「リスト」知らんのか。
コマンド; コマンド;
みたいにセミコロンで区切ったのがリスト。(改行でもいいが)
リストが桶ということは、2個以上のコマンドが桶。
while gccのプログラム; [ $? != 255 ]
の代わりに、
while echo hoge; [ $? != 255 ]
とでもやってテストしてみろ。ちゃんと動くから。
あと、>>801 が書いてくれたテストプログラムも、
while の条件文に複数のコマンドを書いた例だな。
0804名無しさん@お腹いっぱい。
2009/01/18(日) 19:16:46>>802 は。「リスト」が、&& や || を使ったのしか駄目だと
勘違いしてるんじゃないかww
セミコロンでも改行でもOK。
0805名無しさん@お腹いっぱい。
2009/01/18(日) 19:19:18よくまあ他人同士のふりができるな。
タイミングと言い、やりとりといい、
よくまあ毎回毎回同じパターンで
飽きないか?
0806名無しさん@お腹いっぱい。
2009/01/18(日) 19:22:45>>797 の後半と、
>>802 の後半は大間違いなので、
>>797 = >>802 に釈明カキコを要求しとく。
0807名無しさん@お腹いっぱい。
2009/01/18(日) 19:27:59> リストまではOK
リストまではOKってことは、
>>797 の主張が間違ってたってことだよ。
hoge && hage && boke
hoge || hage || boke
hoge; hage; boke
上の3つは全部「リスト」。
ちなみに、
hoge
hage
boke
みたいに3行に書いても全体で1個の「リスト」。
while
hoge
hage
boke
[ $x -ne 0 ]
do
.....
done
みたいな変わった書き方もある。
0808名無しさん@お腹いっぱい。
2009/01/18(日) 19:36:33ああ、見られないと出来ないのか。
0809名無しさん@お腹いっぱい。
2009/01/18(日) 21:35:35普通、人の間違いは指摘する事は有っても、
わざわざ、釈明せよ等とは言わないものだ。
お前、もう良いから、このスレから出て行ってくれ。
邪魔だ。
0810名無しさん@お腹いっぱい。
2009/01/18(日) 21:48:36-fはよく見るけど何もないのもよくみるけど
0811名無しさん@お腹いっぱい。
2009/01/18(日) 21:58:290812名無しさん@お腹いっぱい。
2009/01/18(日) 22:43:58恥晒しとくね
>whileの条件部分は1つのコマンド/パイプライン(相当)しか書けない
>whileの条件部分は1つのコマンド/パイプライン(相当)しか書けない
>whileの条件部分は1つのコマンド/パイプライン(相当)しか書けない
>whileの条件部分は1つのコマンド/パイプライン(相当)しか書けない
■ このスレッドは過去ログ倉庫に格納されています