1 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:34:47.98 ID:/eJt2TVD.net] シェルスクリプトに関する総合スレッドです。 全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 前スレ: シェルスクリプト総合 その28 mevius.5ch.net/test/read.cgi/tech/1532397676/
136 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 22:06:28.63 ID:opkeFDjY.net] >>133 echo * (別にechoである必要はない)で ファイルが見つからない時になぜ * を返すのか? そういう仕様にした理由
137 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 22:52:03.02 ID:opkeFDjY.net] ありゃ? もうすぐ答え出るかと思ってひとっ風呂浴びてきたんだが まだでてないや。誰か曰くmanに書いてあるらしいから 知らなくても答える気があるなら、答えられるはずなんだけどなー な?書いてないだろ?
138 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 22:55:28.86 ID:19nHnpBp.net] そこまで言い張ってあったらどうすの?いやあるんだけど 黙って逃げるだけの未来しか見えないw
139 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:03:19.00 ID:opkeFDjY.net] じゃあ先に答えを言ってくれた人へ ありがとう これでもう黙って逃げるだけの未来はなくなりました。
140 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:04:43.01 ID:19nHnpBp.net] やかましわっ、アホっw なんでこうも強情というか自信満々なのかなあと、実際にあるのに書いてあるのを知っている方は思うんだよ で、ここまで強情で自身満々故になのか逃げるだけかというのも透けて見えるんだよ まあ、>>133 のお人が答えてもらえるんだからもっと待ちなさいな なんでそうも自己都合なんだかw。俺が>>133 だったら答えるのやめるw。別に>>133 のお人に答えるなとか風なことでではない、あくまでも俺だったらね
141 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:10:20.77 ID:opkeFDjY.net] 書いてある内容をコピペすりゃ終わりなのに 長引かせてるのはお前やで?
142 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:13:02.33 ID:19nHnpBp.net] そうだよ?言われなくても、そうだよ?(すでに>>131 で書いてあるやん?w) なにを急に言い出してるの?それもあんたも律儀にレスしてんのに
143 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:14:01.18 ID:opkeFDjY.net] 自信満々に荒らし宣言w
144 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:17:24.59 ID:19nHnpBp.net] いやいや、それを言うならあんたもだって。なんだかなあ。それに俺はちゃんと答えている(ふんわりと)、それにあーだこーだ言っているのはあんたなんですけど?どっちがよりでしょうねえ? 第三者から荒らしと言われてもしょうがないかと思うが、あんたが言い出すとは、まあ、先の「言い張る〜」と同じパターンやね てかさ、せっかく>>133 が出てきたのにそうやってなぜ流すようなことすんの?w
145 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 11:46:05.38 ID:zBV/1Std.net] >>133 待ってますよ
146 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 10:20:38.47 ID:eWoMr/0V.net] >>133 まだですか?
147 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 15:20:56.18 ID:NNFII5Ih.net] 横からだけど面倒臭いから答えを書いとくよ bash なら man bash の Pathname Expansion に書かれてるから、それをちゃんと読んでから質問してね。
148 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 15:59:00.29 ID:3hZl3Wdo.net] >>147 そこに「なぜ*を返すことにしたのかという理由」は書いてないって言うのが面倒だから、ソースとGoogle翻訳貼り付けるわ https://git.savannah.gnu.org/cgit/bash.git/tree/doc/bashref.info#n2116 *パターンマッチング::シェルがパターンをどのようにマッチングするか。 単語分割後、 '-f'オプションが設定されていない限り(* Set The Builtin::)、Bashは各単語をスキャンして文字 '*'、 '?'、および '['を探します。 これらの文字の1つが現れると、その単語はPATTERNと見なされ、パターンと一致するファイル名のアルファベット順にソートされたリストに置き換えられます(* Pattern Matching::)。 一致するファイル名が見つからず、シェルオプション 'nullglob'が無効の場合、単語は変更されません。 'nullglob'オプションが設定されていて、一致が見つからない場合、その単語は削除されます。 'failglob'シェルオプションが設定されていて、一致するものが見つからなかった場合、エラーメッセージが表示され、コマンドは実行されません。 シェルオプション 'nocaseglob'が有効になっている場合、アルファベット文字の大文字と小文字を区別せずに照合が実行されます。 パターンがファイル名展開に使用されるとき、文字 '。' シェルオプション 'dotglob'が設定されていない限り、ファイル名の先頭またはスラッシュの直後に明示的にマッチしなければなりません。 ファイル名 '。' 'dotglob'が設定されていても、 '..'は常に明示的に一致しなければなりません。 それ以外の場合は、「。」 文字は特別扱いされません。 ファイル名を一致させる場合、スラッシュ文字は常にパターン内のスラッシュと明示的に一致させる必要がありますが、 他の一致コンテキストでは、後述のように特殊なパターン文字と一致させることができます。
149 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 15:59:15.40 ID:3hZl3Wdo.net] nocaseglob'、 'nullglob'、 'failglob'、および 'dotglob'オプションの説明については、* note The Shopt Builtin ::の 'shopt'の説明を参照してください。 'GLOBIGNORE'シェル変数はパターンにマッチするファイル名のセットを制限するために使用されるかもしれません。 「GLOBIGNORE」が設定されている場合、「GLOBIGNORE」のパターンの1つとも一致する各一致ファイル名は、一致リストから削除されます。 'nocaseglob'オプションが設定されている場合、 'GLOBIGNORE'のパターンとのマッチングは大文字小文字の区別なしに実行されます。 ファイル名 '。' 'GLOBIGNORE'が設定されていてヌルでない場合は、 '..'は常に無視されます。 ただし、 'GLOBIGNORE'をNULL以外の値に設定すると、 'dotglob'シェルオプションが有効になるので、他のすべてのファイル名は '。'で始まります。 一致します。 '。'で始まるファイル名を無視するという古い動作をするには、 '。*'を 'GLOBIGNORE'のパターンの1つにします。 'GLOBIGNORE'が設定されていない場合、 'dotglob'オプションは無効になります。
150 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:53:14.39 ID:6GvfotlI.net] 存在する機能の説明なのでその機能について説明しているだけかなと
151 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:56:27.29 ID:3hZl3Wdo.net] 133 名前:デフォルトの名無しさん[sage] 投稿日:2019/04/04(木) 21:46:57.92 ID:gljFUA1G もうどっちがどっちなのか分からんけど グロブに関する疑問なら答えられそうなので, 最初の質問を教えてくれ。 136 自分:デフォルトの名無しさん[sage] 投稿日:2019/04/04(木) 22:06:28.63 ID:opkeFDjY [17/21] >>133 echo * (別にechoである必要はない)で ファイルが見つからない時になぜ * を返すのか? そういう仕様にした理由
152 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:06:51.60 ID:6GvfotlI.net] なぜかは、 だいたいは、こんな感じ(だろうで)、 if(argc < 2){ fprintf(stderr, "usage: hoge file ...\n"); exit(1); } if((fp = fopen(argv[1], ...)) == NULL){ warn("%s", arg); exit(1); } $ rm -v '*' rm: *: No such file or directory $ rm -v '' rm: : No such file or directory $ rm -v usage: rm [-f | -i] [-dPRrvW] file ... unlink file どれがエラーとして適切?ということとかとか。他にエラーにならないのが困るとか スクリプトでしかの話なら何も返さないというのもあるけど、スクリプトだけのためのじゃないからねえ。上記の通りコマンド的にはエラーの方がわかりやすく、シェルがどのコマンドだから展開方法を変えるというわけでもないし >>151 そこにあるキーワードで別のmanがググれるよ
153 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:08:25.01 ID:6GvfotlI.net] >>152 誤 warn("%s", arg); 正 warn("%s", argv[1]);
154 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:14:32.56 ID:3hZl3Wdo.net] >>152 それどれもエラーになってますよ?
155 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:16:06.60 ID:6GvfotlI.net] エラーだもの。「エラーの方がわかりやすく」ってとこ?すまん変な文になった そのままの方がわかりやすく(?) かな。
156 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:16:38.44 ID:3hZl3Wdo.net] >>152 > そこにあるキーワードで別のmanがググれるよ 今度は、どのmanですか?
157 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:19:09.45 ID:6GvfotlI.net] ああ、「どれがエラーとして適切?」もか。「どれもエラーだがどれが適切?」というつもりだったんだが。「どれもエラーだがどれがエラメッセージとして適切?」までか
158 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:20:08.01 ID:6GvfotlI.net] >>156 今度はという意味がわからんが、 man 「キーワード」 でググってみ
159 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:21:42.07 ID:6GvfotlI.net] てか、またおまえか?いちいち教えてもらったのに文句つけてるんだなw
160 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:23:26.97 ID:3hZl3Wdo.net] >>157 for i in *.txt; do rm "$i"; done (すでに拡張子txtのファイルが全て削除されている場合) rm: '*.txt' を削除できません: そのようなファイルやディレクトリはありません これは適切なエラーメッセージだと思いますか?
161 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:24:20.52 ID:3hZl3Wdo.net] >>158 なんで「キーワード」というふうに隠すんですか? キーワードの中身を書きましょうよw
162 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:24:53.61 ID:6GvfotlI.net] >>152 の最後に書いてあるだろう。なんでいちいちいちいち教えなきゃならんのねん コマンドとしては適切だろう
163 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:27:49.54 ID:6GvfotlI.net] >>161 いちいち教えてもらわなきゃならないのに、隙あらば文句つけるようなヤツに丁寧に教える必要はないってことだよ。社会的に一般的なことだなw まあ、もともとはあんたに具体的に教えたくないから、あんたじゃない人に他にあるよと言ってみただけだな てか、ぜんぜん進んでねーな。こんなやりとりしてもぜんぜん進まないよ?少しは頭を働かせて自力でやってみなさいな
164 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:29:55.75 ID:3hZl3Wdo.net] 1. man bashにある 2. ありませんでした。 3. 他のmanにある 4. ありませんでした。 この流れか
165 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:31:26.91 ID:3hZl3Wdo.net] 日本語に訳してあげないと、書いてないことを認めなかったくせに 何言ってるんだろうね。
166 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:31:36.42 ID:6GvfotlI.net] マジで「読めない」のな...どうしようかw
167 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:32:31.71 ID:6GvfotlI.net] >>165 なにをおっしゃってるんですか?すごいな、いやすごい な?全然進まんだろ?w
168 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:35:16.40 ID:3hZl3Wdo.net] お前が出てくるといつも進まんよなw
169 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:37:34.84 ID:6GvfotlI.net] あんたが進まなだけだからな、別にあんたが進まないのは俺はどうでもいいんだけど、なにか進みたがってるあんたがどう動くのかが興味ありの なんで俺にいちいちレスしてんの?w
170 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:42:21.44 ID:3hZl3Wdo.net] > なんで俺にいちいちレスしてんの?w お前が言ってることが嘘だからだよ。 manにそういう仕様にした理由は書いてませんでした。
171 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:42:42.54 ID:3hZl3Wdo.net] 知らないなら、素直に知らないって言えばいいのに
172 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:44:22.86 ID:6GvfotlI.net] ちょっとは進んで(ID:3hZl3Wdo がヤツだとは思わなかったのでw)、>>152 を書いてみたが、ヤツはやっぱり聞かないだけだったという 俺は単に最初からmanにあるとしか言ってない、man bashに言及してるのはあったけど(>>105 ですでになのに、なんでいまごろなんだ?)、まあそこからでもたどり着くかなとw >>164 なんてお前の勝手な妄想解釈。あるよ本当に (「言っちゃった」とちょっと悔しくもある。また、「言っちゃった」のになんで探せないないねんwwwここまで言えばさすが自分で探すか?)
173 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:02:56.45 ID:6GvfotlI.net] 探せたか?wwまあ、探せても「読めない」可能性が高いかな ・やっぱり、探せない ・探せたが、読めなくて文句つける ・探せて、黙って逃げる ・他 どれでしょう。まあこう書いたら「他」にする可能性が高いか
174 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:16:37.06 ID:3hZl3Wdo.net] > なんでいまごろなんだ? >>105 の「パス名展開」の項にないのはわかっていて、そこにないと言ってるのに 性懲りもなく、>>147 で「bash なら man bash の Pathname Expansion に書かれてるから」と いうから、こいつ読んでないなってことで日本語に訳してあげたんだろ そして > ファイルが見つからない時になぜ * を返すのか? > そういう仕様にした理由 は、そこに書いてないと同意取れたはずだが? なんでそんな説明をせにゃいかんのよ?
175 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:23:16.92 ID:6GvfotlI.net] 「性懲りもなく」...「訳してあげた」んだろ すんげええなあ、今までさんざん無能っぷりを自ら披露しているのにw 単によくレスを見なかった人がと考えはしないのね。自分がレスをよく見ないくせにw お前のレスはぜーーーーんぶ自分内で完結している。こんな他人と交わらない方がいいんじゃないの? 呆れ果てるな。まあ、その自己の世界で妄想ダダ漏れすればいいと思うよ
176 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:24:46.51 ID:3hZl3Wdo.net] ↑ほらな。俺の言ったことを否定したいだけw
177 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:28:18.84 ID:6GvfotlI.net] そりゃ、否定するよ。矛盾自己肯定だらけだもの もしかして、あんたって40超えたおっさんで外人にクソガキ呼ばわりされたことない?って気になったり。まあ、違うかw
178 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:34:08.77 ID:3hZl3Wdo.net] >>117 40超えたおっさんにクソガキ呼ばわりでもされたか?w
179 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:34:25.94 ID:3hZl3Wdo.net] >>117 じゃなくて >>177
180 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:37:29.49 ID:6GvfotlI.net] いや、そういう(一部で有名な)有名人がいてな、あんたの属性が似すぎててな。幾つかは知らんが、あんたもそのうちそうなるだろうな 年意外同じだからw 年取ればそれが変わるわけでもないぞw
181 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:40:11.70 ID:3hZl3Wdo.net] 嫌いなやつはみんな一緒。思考回路が単純(笑)
182 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:43:03.63 ID:6GvfotlI.net] イミフ。なんで「嫌い」とかアホなこと言っているのだか。人のふり見て我がふり直すとかあるでしょ?そういう意味だよ、そういう有名人 誰ともわからないハズなのに「嫌い」とだけの理由にできるとは...さては...ww
183 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:45:02.15 ID:3hZl3Wdo.net] はいはい。話戻すぜ。 ファイルが見つからない時になぜ * を返すのか? そういう仕様にした理由 ^^^^^^^^^^^^^^^^^^^^^^ manに書いてあるそーです。やつのたわごとを信じる人は (ネットじゃなくて)manの中から探してみてください。 信じない or 信じたけど裏切られたら、 ここにmanの場所が書かれることはないでしょう(予言)
184 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:46:10.94 ID:6GvfotlI.net] ・やっぱり、探せない か... うん、なんかよかったww じゃ、がんばれよ
185 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:50:10.35 ID:3hZl3Wdo.net] >>184 安心しろ。俺以外の人も見つけられない。 だからここに俺とお前以外の人間が書くこともない。 俺が言ってることが正しければな(笑)
186 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 18:56:04.68 ID:6GvfotlI.net] ほんと「読めないのな」。よかったはそういう意味じゃない わざとかと思えなくもないけど、いままでの「読めなさ」からはわざとではないとしか思えない どう見ても、お前の都合のよいことだな、さすがだよ 場所のレスもらえればお前がいままで知りたかったことがわかり、黙って逃げるだけw(そこにお前の苦悩とかなさげ) もらえなかったら、お前の中では自己肯定の補強にになるだけとういう。間違いでもな しょうがないな、1ヶ月後に教えてやるよw何もなかったら1ヶ月後に、この話題はw
187 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:02:14.14 ID:3hZl3Wdo.net] なんなら一年後でいいんやで?w
188 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:09:11.60 ID:6GvfotlI.net] イミフ。下衆い意味で言っていそうではあるがwじゃ、適当な時にな
189 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:20:16.01 ID:3hZl3Wdo.net] それまで別の話題でお会いしましょう(笑) あ、他の人、manにないのは明らかなんで探さなくていいですよ〜w 時間の無駄でしょうし。
190 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:24:11.57 ID:3hZl3Wdo.net] __ - ____ ________ - ___
191 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:48:40.20 ID:9U0C5XME.net] >>136 bashがそういう仕様にした理由は, shにあわせたからです. shがそういう動作をする理由は, expand()が0をかえしたときはもとの引数文字列でmakearg()するようにつくられているからです. おそらく, そういう仕様をきめてからそういう動作をさせたわけではないとおもいます.
192 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:28:59.33 ID:Ejuihx1D.net] ようやくまともなレスがw >>191 その動き(expandやmakearg)はソースコードから? 補足しておくと俺は「"bashは"なぜそうしたのか?」とは 聞いてなくて、シェルスクリプト(元をたどればsh?)が どうしてそういう動作をするのかの理由を聞いてる。 で、それは特に理由はないのかな?たまたま最初の実装した人が あまり考えず、そうしましたぐらいの理由で。 だから理由を探しても見つからないと
193 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:36:01.12 ID:Ejuihx1D.net] まとめ for i in *.txt; do echo "$i" done 何もファイルがないディレクトリで↑を実行すると 「*.txt」 というファイルが見つかったかのような動きをします。 「*.txt」というファイルだけがあるディレクトリで実行すると 全く同じように「*.txt」 というファイル名が表示されます。 つまり空ディレクトリでも「*.txt」というファイルがあっても 表示結果が全く同じになります。これは驚き最小の原則に反しています。
194 名前:デフォルトの名無しさん [2019/04/08(月) 22:57:42.88 ID:b/SlAWxT.net] https://linuxjm.osdn.jp/html/LDP_man-pages/man7/glob.7.html
195 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:22:25.12 ID:Ih2qq+NP.net] の、POSIXのところは pubs.opengroup.org/onlinepubs/009695299/functions/glob.html GLOB_NOCHECK かな?オプション名が意図不明だが説明文からは
196 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:37:03.41 ID:8H4AhNTa.net] >>194 これを読んでも同じ結論になるわけだけど > 先に与えた、わかりやすく簡単なルール、 「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、 > オリジナルの UNIX における定義であった。 これはパターンが空のリストに展開されることも許可されていた。 例えば 略 > において、*.gif ファイルが全くない場合でも、 これは空のリストに展開されるため、エラーにならない。 > しかし POSIX では、文法的に正しくないパターンや、 マッチがなかったパターンは、 そのまま変更されずに残されることになっている。 なぜ、わかり易く簡単なルールを捨てて、POSIXでは「そのまま変更されずに残されることになっている。 」を 選んだのかが書かれてないんだよね。
197 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:45:50.70 ID:Ih2qq+NP.net] ・探せたが、読めなくて文句つける か... 探してじゃなくてっぽいけどw 書いてあることが。読めれば」>>152 もわかるだろうに。どういう意味で言ったかわからん最小の原則wとかやらにあっているだろう まあ、単に「認めたくない」だけだろな 何か他にファイルなどがあるとこで、*.hogeなんてファイルがなかったとしよう、 ls *.hoge でどう動くのが望ましい?この例「だけ」に噛み付くのじゃなく、ちゃんと頭を使って考えような
198 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:50:01.35 ID:8H4AhNTa.net] >>197 1. 見つからない場合はエラーとなってls自体が実行されない 2. ls "" とみなされる のどちらかだろうな。 次はあんたが、頭を使ってレスしてくれなw
199 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:52:32.47 ID:8H4AhNTa.net] >>197 ついでだから、ファイルが見つからない時 for i in *.txt; do echo "$i" done はどう動くのが望ましいか書いてくれよ。 今の動きや仕様を書くんじゃなくて どう動くのが望ましいかをね
200 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:53:17.08 ID:Ih2qq+NP.net] ほんとに脊髄だけで、頭使わないのな POSIXはシェルスクリプトだけを考えてるわけではないのだよ ls *.a *.c *.c で、どれかがあってどれかが無い場合の動作は?よくそれで頭使ってる風に言えるもんだ。
201 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:54:01.05 ID:8H4AhNTa.net] > で、どれかがあってどれかが無い場合の動作は? >>198 に書いたとおり
202 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:54:41.62 ID:QfzJZ21c.net] Ruby のglob を使った方が、バグらないので良い!
203 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:55:27.24 ID:8H4AhNTa.net] 空のディレクトリで実行するとこうなるのかw $ ls *.a *.c *.c ls: '*.a' にアクセスできません: そのようなファイルやディレクトリはありません ls: '*.c' にアクセスできません: そのようなファイルやディレクトリはありません ls: '*.c' にアクセスできません: そのようなファイルやディレクトリはありません
204 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:58:38.45 ID:8H4AhNTa.net] 多分あいつは、 > この例「だけ」 のことしか考えてない予感がするなw
205 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:00:36.62 ID:cRtn1aSe.net] >>202 そうだね。ファイルが見つからないときは ちゃんと空のリストを返してくれる。 シェルスクリプトのように、「*」を返すことはないね。 irb(main):001:0> Dir.glob('*') => []
206 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:01:15.03 ID:cRtn1aSe.net] ID変わったけど、俺が ID:8H4AhNTa な
207 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:01:53.02 ID:b0dEtQwc.net] まだ、ゴネてる。自分の思ったようにならないってだけでよくそれだけ粘れるな POSIXの仕様に意味があるのはさんざん言った。お前が認めたくないなんて知ったこっちゃない POSIXの仕様に合わせてそんなのが動くように普通に書けるし、嫌だったらbashのオプションであんたの好きにできるだろうに >>201 ls: : No such file or directory ls: : No such file or directory ls: : No such file or directory って、出て来るのが望ましいのね ls: *.a: No such file or directory ls: *.b: No such file or directory ls: *.c: No such file or directory POSIXの人も俺と同じだと思うよw >>203 イミフ。なにを言いたいの? なんで、いちいちいちいちいちいち説明教えなきゃならいないねん
208 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:12:14.14 ID:cRtn1aSe.net] >>207 この質問は無視? for i in *.txt; do echo "$i" done はどう動くのが望ましいか書いてくれよ。
209 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:12:42.47 ID:cRtn1aSe.net] >>207 やっぱりlsの例だけしか考えてないようだね
210 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:15:06.05 ID:b0dEtQwc.net] その例だけなら、回らないのが望ましいだろな。だが、POSIXはシェルスクリプトだけを考えてるわけではないからしょうがないうちだろな で?
211 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:16:54.68 ID:b0dEtQwc.net] >>209 何を言いたいのかわからんな。どゆこと?まさか「正確」と同じパターンじゃないよな?その気しか思えないので具体的に言って
212 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:18:30.84 ID:cRtn1aSe.net] ついでにPHPの場合 $ php -r "print_r(glob('*'));" Array ( ) Perlの場合 perl -MData::Dumper -e 'print Dumper [glob "*"]' $VAR1 = []; Rubyと同じく、見つからない場合は デフォルトでは空のリストが帰ってくる。
213 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:19:17.64 ID:cRtn1aSe.net] >>210 さっきから > POSIXはシェルスクリプトだけを考えてるわけではないから を繰り返してるけど、シェルスクリプト以外とは何の話をしてるの? そして、シェルスクリプト以外ではどうだって言いたいの?
214 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:20:20.88 ID:cRtn1aSe.net] >>211 だからお前、"lsの場合では" *だったらエラーがわかりやすいって言ってるだけじゃん。 forの場合では、当てはまらないじゃん。
215 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:20:53.10 ID:b0dEtQwc.net] >>213 マジか...
216 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:21:12.57 ID:cRtn1aSe.net] >>215 逃げるなよ
217 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:24:19.08 ID:b0dEtQwc.net] >>214 ああ、なんだ「シェルスクリプト」の(それも特定な)場合か。「ls」なんて言ってるから他のコマンドとかと思ったぞ POSIXはシェルスクリプトだけを考えてるわけではないからw 話にならない、POSIXを勉強して出直してね
218 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:24:33.50 ID:cRtn1aSe.net] C言語めんどくせーなーと思ったら、サクッとソースコード見つかった。 https://qiita.com/sassy_watson/items/03c16bd03b56e5579477 ↑のコードの ./*.txt を * に変換したけど、 やはり、空のディレクトリで * と表示されることはなく 何も表示されなかった。 POSIXってほんと何を言いたいんだろう?
219 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:25:50.97 ID:b0dEtQwc.net] >>216 逃げるも何も「文句をつける対象を理解してない」のにどう相手をすれと?あんたにこれ以上こまごまこまごま教えてなきゃならんのか? だったら、逃げるよ
220 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:26:21.07 ID:cRtn1aSe.net] POSIXはシェルスクリプトだけを〜とか、じゃあC言語のことなんですかねぇ でもC言語でも空のディレクトリで * が返ってくることはないし ほんと何が言いたいんだかw
221 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:27:47.89 ID:cRtn1aSe.net] POSIXはシェルスクリプトだけを考えてるわけではないから → Ruby・・・空の配列を返す → Perl・・・空の配列を返す → PHP・・・空の配列を返す → C言語・・・空の配列を返す シェルスクリプト以外は空の配列を返します。
222 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:28:27.37 ID:b0dEtQwc.net] >>218 ,220 はあ...最後な >>194 ,195をよーく読め。なんでそれがbashでになってるのかも
223 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:29:23.15 ID:b0dEtQwc.net] 以後、脊髄反射マンと呼ぶからなw
224 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:29:27.03 ID:cRtn1aSe.net] >>222 またそれか。よく読んでも、そうした理由は書いてない。
225 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:29:47.10 ID:cRtn1aSe.net] >>223 脊髄反射マン必死だなw
226 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:31:21.79 ID:b0dEtQwc.net] Supports rule 3 in the Shell and Utilities volume of IEEE Std 1003.1-2001, Section 2.13.3, Patterns Used for Filename Expansion.
227 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:32:12.65 ID:b0dEtQwc.net] >>225 モロ体現してありがたい。オモロイなあんたは
228 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:32:37.61 ID:cRtn1aSe.net] >>226 何度も言ってるが、 俺が聞いているのは、そういう仕様にした"理由"であって 仕様の場所は聞いてはいない。 ほんと、脊髄反射しかしねーなw
229 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:34:36.17 ID:b0dEtQwc.net] >>228 言っているけど。「読めれば」そう書いてあるんだけどな。「読めない読めない」言われてもしょうがない あんただって、「空」だったらマズいときもあるって認めてるやん 本当にただただ「認めたくない」だけなんだな。その「コロ」っとあんたの原点に戻るあたり まあ、がんばりや
230 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:35:06.66 ID:cRtn1aSe.net] そして面白いのが、シェルスクリプトは glob で見つからない場合に 検索パターンを返すのに対して、シェルスクリプト以外では 見つからない場合に、空のリストを返すって所だな。
231 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:37:41.48 ID:cRtn1aSe.net] >>229 お前、マズイときもあるし、マズくない時もあるって 自分で認めてるやんw ということはお前の主張は、所詮マズイときの例でしかなく マズくない時には当てはまらないってことになるんだぞ わかってるのか?お前の主張が崩れてるの で、シェルスクリプト以外は空のリストを返しているのに シェルスクリプトだけは、見つからなかった時に * という 文字列を返すという仕様にした理由は?
232 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:39:30.00 ID:cRtn1aSe.net] 結局、一番マトモな理由は >>191 が書いた > おそらく, そういう仕様をきめてからそういう動作をさせたわけではないとおもいます. これだけなんだよな。特に理由はない。 (深く考えずに)そうしてしまった。 もちろん、正式なドキュメントとして この理由が、書かれている文書は見つかってないがね。
233 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:42:08.93 ID:cRtn1aSe.net] あ、みなさん。もし ID:b0dEtQwc を擁護したい人がいるならば ID:b0dEtQwc が示したドキュメントの中から、 「そういう仕様にした"理由"」を書いてある所を指摘して構わないんですよ? ないでしょう? 誰も指摘しないもんね。それが証拠だよ。
234 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:42:13.89 ID:b0dEtQwc.net] 何言っているの? >この仕様、なにか便利なの? が、お前の原点だろ?それ以後「認めなたくない」のであーだこーだ言っているだけだな
235 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:43:58.23 ID:b0dEtQwc.net] とうとう誰とも言えない人に頼るようになったか...ww
236 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:46:08.72 ID:cRtn1aSe.net] >>234 ちゃんと流れを読むように 107 自分:デフォルトの名無しさん[sage] 投稿日:2019/04/04(木) 17:59:04.72 ID:opkeFDjY [4/21] >>104 聞いてるのは仕様ではなくて、 どうしてそうしたかの理由です。