[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 05/13 07:05 / Filesize : 129 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その29



1 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:34:47.98 ID:/eJt2TVD.net]
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ:
シェルスクリプト総合 その28
mevius.5ch.net/test/read.cgi/tech/1532397676/

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
聞いてるのは仕様ではなくて、
どうしてそうしたかの理由です。

237 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:50:22.73 ID:b0dEtQwc.net]
>>236
流れというかレスを読めないあんたに言われたくないw
いや、原点の話でしかないな。あんたの都合に(それもあんたの都合の良いようになだけな)合わせる必要性はこれっぽちもないな
とりあえず、原点の問題は解消した&マズい場合もあるそれが理由ってことも解消したってことで、おしまい

238 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:51:41.47 ID:cRtn1aSe.net]
https://linuxjm.osdn.jp/html/LDP_man-pages/man7/glob.7.html

> において、*.gif ファイルが全くない場合でも、 これは空のリストに展開されるため、エラーにならない。
> しかし POSIX では、文法的に正しくないパターンや、 マッチがなかったパターンは、 そのまま変更されずに残されることになっている。
> bash では、次のコマンドで昔からの振る舞いに設定することができる。
>
> shopt -s nullglob

なぜ昔からの振る舞いから替えたのか?その理由が謎
(理由を明確に述べているドキュメントがない)

239 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:52:47.78 ID:cRtn1aSe.net]
>>237
おしまいなんで、あんたは消えていいです。
1ヶ月後にちゃんと答えてください(笑)

240 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:54:45.59 ID:cRtn1aSe.net]
> POSIXはシェルスクリプトだけを考えてるわけではないから

↑これも結局何が言いたいのか不明だったな
まあ、何も考えずに(調べずに)シェルスクリプト以外の言語でも
* を返してるはずだって思い込んだんだろうなw
(実際には見つからない場合は空のリストを返します。)



241 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:01:34.97 ID:b0dEtQwc.net]
なにか勝ち誇って妄想全開のようだが、全然違う
>>195をよく読もうな。>>226と注目すべきとこあげたのに

他の言語でもglobなんて自ら実装したりはしないんじゃないの。単にそのオプションがデフォルトでは設定されていない、オプションが設定できるのは設定すれば同じになるんじゃないの。妄想お疲れさん

242 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:09:06.87 ID:cRtn1aSe.net]
> POSIXはシェルスクリプトだけを考えてるわけではないから

↑これで何が言いたいのかを書けば済む話
それが出来ないのはなぜだろうw

243 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:09:51.04 ID:cRtn1aSe.net]
あ、ちなみに「注目すべきとこ」には何も書いてませんよ。
いつもどおりです。

244 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:15:27.47 ID:b0dEtQwc.net]
ほんとーーにっ、「読めない」のな、この脊髄反射マンっw

245 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:16:58.07 ID:cRtn1aSe.net]
読めないって言わずに、具体的に引用すればいいだけなのに
それをしないのは、結局引用する場所がないからなんだよね

246 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:23:40.88 ID:b0dEtQwc.net]
「無い」から「引用できない」に変わったけど、同じパターンやな。そして前言はなかったことにという前々からの同じパターン

247 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:25:22.47 ID:cRtn1aSe.net]
>>246はとりあえずレスしてみましたってだけで
中身がなにもないことに、皆さん気づきましたか?

248 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:26:56.18 ID:b0dEtQwc.net]
なんか少しは自分を見直すとかあって、ここでもこんなクソ(俺のも含めて)なレスの応酬もなく、見てためになる万人が楽しめるレス、Q&Aになるかと思ったが、無理かやっぱ(偉そう偉そう)
そりゃ無理かっ。なんか急に飽きた、じゃな

249 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 01:29:05.84 ID:cRtn1aSe.net]
はい、コイツは何度目かの逃亡宣言です。
また懲りずに来ますよw

250 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 08:51:10.36 ID:1CG1Z7Gt.net]
bashの算術計算で小数を使う方法ってないです?
+=で加算したいんですが



251 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:14:47.90 ID:sSiaigIF.net]
>>250
それ俺も欲しいんだよね。

前にやった実装は、小数点以下2位固定だったから
1.23 を 123 にして計算してから、後ろ2桁の間にドットを入れて対応したけど
小数点以下の桁数が1.2とか1.234とかだったら面倒なんだよね。

bcコマンドとか呼び出せば簡単なんだが。

252 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 17:03:23.97 ID:bMTFn+JP.net]
exec 3>&1; exec >&-; exec >&3
たまにこんなのを見ますがこれはどんな時に使うんです?
ファイルディスクリプタ自体は理解しましたがfdの複製や切り替える目的が分からなくて
cmd 2>err.txtは意識せず使えてますが






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<129KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef