- 1 名前:デフォルトの名無しさん mailto:sage [2019/08/10(土) 23:17:50.64 ID:L+B8OP2P.net]
- シェルスクリプトに関する総合スレッドです。
全般 ・荒しは無視しましょう。 ・丁寧な姿勢を心掛けましょう。 ・ネチケット(死語)を意識しましょう。 ・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。 シェルスクリプト総合 その30 https://mevius.5ch.net/test/read.cgi/tech/1561989867/
- 692 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 14:59:09.67 ID:1VQTT5dv.net]
- 生理がこないんですけど
どうしたらいいですか?
- 693 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 15:14:42.58 ID:g4qimp0d.net]
- 俺も生理来たことないわー
- 694 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 15:24:33.48 ID:g4qimp0d.net]
- >>680
どこ情報ですか?
- 695 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 17:46:55.62 ID:zGRcNdYK.net]
- もしもし、先生!もしもし!
だけどもねー、実はあのー、子供つくらないようにしてるんですよね、わたくしも本当に辛くてですね、子供には遺伝しないでしょうか?
- 696 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 19:45:29.40 ID:bgqbOy9v.net]
- >>685
austingroupbugs.net/view.php?id=249 こことか。
- 697 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 20:35:29.76 ID:sHSicWZI.net]
- >>687
いや、小数の話
- 698 名前:デフォルトの名無しさん [2019/09/30(月) 21:58:43.29 ID:M1BD3UNk.net]
- しょうっすか…
- 699 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:03:44.06 ID:qRuhgEzP.net]
- 無理にシェルスクリプトだけで小数対応しなくても、
perl -e "print 0.2*0.3" とか、いろいろやりようはあるからあまり必要性を感じない。
- 700 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:20:20.33 ID:nI7iDoAi.net]
- >>690
大量に計算をするとプロセス呼び出しになるから遅いんだよ $ time ksh -c 'for i in $(seq 1000); do n=$(echo "0.2*0.3" | bc -l); done' real 0m1.921s user 0m1.762s sys 0m0.715s $ time ksh -c 'for i in $(seq 1000); do n=$((0.2*0.3)); done' real 0m0.009s user 0m0.009s sys 0m0.000s たったの1000回でここまで差が出るからね
- 701 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:28:35.91 ID:qRuhgEzP.net]
- 意図と違うと思うが、
time perl -e '$j=0; for($i=0;$i<1000;$i+=1) { $j+=0.2*0.3; }; print $j' とか、別にシェルスクリプトだけに頼らんでもなんとかなってしまうというか・・・・
- 702 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:29:54.18 ID:nI7iDoAi.net]
- だから出来るできないの話はして無くて
遅いって話をしてる
- 703 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:35:15.29 ID:1VQTT5dv.net]
- >>692
これで事足りるな
- 704 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:58:52.54 ID:nI7iDoAi.net]
- perlは入ってない環境も有るのでその点でも駄目だしね
- 705 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 00:02:33.23 ID:cNB/gbgI.net]
- >>679
これで事足りるな
- 706 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 00:27:03.86 ID:rxcb8vGn.net]
- 必須すぎやろw
- 707 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 01:47:40.69 ID:SPlRKvH8.net]
- なになに縛りが好きなマゾなんだろうw
- 708 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:00:19.69 ID:rxcb8vGn.net]
- そんな事する必要がないなら縛りって言ってもいいけど、
perlが入ってない環境は実際に存在するからね
- 709 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:09:56.58 ID:ESup7bfu.net]
- awkも使えない環境で何やるんだよw
- 710 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:09:58.85 ID:PTA8MEY/.net]
- >>679
- 711 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 02:36:49.10 ID:eGCx9XC9.net]
- >>700
awkはbusyboxに入ってるよw
- 712 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 09:01:32.62 ID:O2y9F
]
- [ここ壊れてます]
- 713 名前:dCY.net mailto: 「可搬性が高い」を「POSIX縛り」と取り違えてるおバカさんがいますね… []
- [ここ壊れてます]
- 714 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 09:11:30.09 ID:ZA6pNaC0.net]
- POSIXで縛るだけではPOSIX未満のbusyboxで動かなかったりするからね
可搬性を高くするにはPOSIXで規定されたコマンドであっても なるべく使わないほうが良い
- 715 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 10:51:02.41 ID:CGhZJwfl.net]
- どういうことなの…
- 716 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 11:09:51.43 ID:ZA6pNaC0.net]
- ここはシェルスクリプトのスレ
つまり可搬性とはシェルスクリプトの話をしてる。 シェルスクリプトではよく外部コマンドを呼び出す しかし外部コマンドはOSによって違う。 特に基本的なコマンドは、各OSでバラバラに作っていたり 独自の修正を入れており複数の実装があり微妙に動きが異なっている。 例えば、LinuxのsedとMacのsedでは使える命令が違う。 POSIX準拠のコマンド(もちろんオプションなども含む)で規定されてるものだけを 使っていれば可搬性はそれなりにあるが、それでも完璧じゃない。 例えば組み込みで使われるbusyboxはPOSIX準拠コマンドのサブセットが実装されてる。 だから本気で可搬性を高くしようと思えばPOSIX縛りでも不十分。 POSIX準拠のコマンドが信じれない。という前提にたてば 思い切って外部コマンドすら呼び出さない、完全にシェルスクリプトだけで 実装するのがもっとも可搬性が高い。 もちろん限界は有るので実際には出来る限りシェルスクリプトで作って、 外部コマンドは必要最小限、必要に応じて互換性を吸収するようにラッパー関数を作る。 ということになる。
- 717 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 15:50:14.87 ID:P1455Lxu.net]
- 可搬性に異常に拘っているのは一人か二人しかいないけどな
可搬性に拘ってないというレスにも可搬性を押し付ける
- 718 名前:デフォルトの名無しさん [2019/10/01(火) 16:28:55.36 ID:9fvqkmcJ.net]
- 認めろよ。
シェルスクリプトに可搬性などない。 どこでも動くシェルスクリプトなど幻想。
- 719 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:40:08.47 ID:8eIOCDAd.net]
- hoge () {
echo "Hello" } for i in $(seq 1000); do hoge a=$(hoge) done myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな 簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな?
- 720 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:46:56.18 ID:O2y9FdCY.net]
- それBashでやってない?
試しにKshでやってみて。(俺環かもしれんから,速度比較は晒さない)
- 721 名前:デフォルトの名無しさん [2019/10/01(火) 16:52:40.16 ID:/6RuW8/Q.net]
- perlが入ってない環境ってそれは入れる必要ないんだろ
一から構築していくならそれでいいけど
- 722 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 16:54:32.38 ID:8eIOCDAd.net]
- なるほど。ksh(だけが?)がなんか賢いかな。zsh他も差がある
- 723 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 17:07:00.59 ID:cNB/gbgI.net]
- perlが無い環境があるからどうのこうの言うけど
kshが無い環境があるからは言わないんだなw
- 724 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 17:10:13.56 ID:8eIOCDAd.net]
- 違う人じゃね?同一人物だったらアレだけどw
- 725 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 18:59:48.82 ID:8eIOCDAd.net]
- >>712
zsh他も差があるは、>>709で体感できる差があるが正しいか kshでも差があるね。ループ数増やせば体感できるほどの差となるね
- 726 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:16:54.12 ID:fust4gpU.net]
- >>709
forkだよ。$( ) の部分がサブシェルになってて 多くのシェルではサブシェル = 別プロセス生成で実装されてる。 そのおかげでサブシェルの中でcdを実行したり変数を使ったりしても 呼び出し元は汚染されたりしない kshはサブシェルの実装が最適化されていて 全てではないが、サブシェルの部分を同一プロセスで実行する。 独自で状態の保存と復帰を実装してるのだろう。 https://codeday.me/jp/qa/20190810/1425430.html kshは速いと言っちゃ速いんだが、その(複雑な?)仕組みのせいで バグのもとになってたりする。ということを書いてあるページが 有ったんだがどこか忘れた。
- 727 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:25:21.59 ID:fust4gpU.net]
- 遅い原因の本質は標準出力のキャプチャじゃないから
この二つでも違いがでる hoge () { : } for i in $(seq 1000); do hoge (hoge) done >>715 > kshでも差があるね。ループ数増やせば体感できるほどの差となるね そうなんだよね。サブシェルのコストは以外と大きい。 だから変数に入れて使うことが目的とした関数は以下のように グローバル変数を使って返したほうがずっと速いわけさ hoge () { RET=Hello } for i in $(seq 1000); do hoge a=$RET done
- 728 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:26:55.18 ID:8eIOCDAd.net]
- >>716
内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ) zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw a=0 ls | while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど とりあえず、どうしようもないそういうものということでいいのね。どうも
- 729 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:30:13.87 ID:8eIOCDAd.net]
- >>717
せっかくですが、ちょい本題とは違うかな。そりゃ () は... なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど どうも
- 730 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:37:54.80 ID:fust4gpU.net]
- >>719
> なんで内部関数なのにサブシェルになんのかねん、 考え方が違う。 コマンド置換$( ) は「サブシェルを使用して実行する」という"仕様"なんだよ なんでサブシェルになるのか?ではなく仕様でサブシェルにすると決まってる。 ただし別プロセスにするとは決まっていない。だから子プロセスとかいう既存の 名前ではなく、新たにサブシェルという用語を作った。 サブシェルの仕様としては、「サブシェル内で行った変数などの変更は呼び出し元には伝わらない。」 などがあるが、それを実現してるなら別の別プロセスでなくてもよい。 だけど別プロセスにするほうが実装が簡単だから多くのシェルではサブシェル=別プロセスになってる。
- 731 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:41:25.43 ID:8eIOCDAd.net]
- >>720
その続きなどを読んでよ。言われていることはすでに書いてあるんですけど どうしようもないという結論が得られたのでw、 結局、こんなことにもそれなりの差があるんだから「常時それも無条件で」実行時間の差があるなんて気にするなんて無意味だなと なにかそれが問題になったときに気にする対応すればいいだけだなという。のをそもそも言いたかったw
- 732 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:44:28.64 ID:fust4gpU.net]
- >>718
> 内部関数なのにってとこがね 他の言語の場合、(基本的に)関数内の変数の変更は呼び出し元に反映されない。 つまりローカル変数になってるだろ? それと同じなんだよ。POSIXの範囲ではlocalもtypesetもないから シェルスクリプトにはローカル変数がない ように思えるが、実はサブシェルを使うからローカル変数は必要ない。とも言える。 ローカル変数を実現するためのサブシェルと言える。 サブシェルの仕様としてローカル変数は必須の機能だが、別プロセスにするのは必須ではない。 サブシェル(別プロセス)と捉えるから仰々しくなってるが、 変数のローカル化と考えれば、内部関数内の変数をローカル化するってだけだから 「内部関数なのに」とは思わないだろ?
- 733 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:51:56.19 ID:8eIOCDAd.net]
- >>722
なにを教えてくれてるのか教えたいのかわからないです 内部変数?内部変数環境のことは言ってないです。他の言語でもの(内部)関数を呼ぶその返り値を使うって話なんですけど 内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか?内部関数という言葉が悪かったならすまんすですけど
- 734 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:52:05.05 ID:fust4gpU.net]
- >>718
そのコードに関しては ls | { a=0 while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... } こう書けばいいって事がわかってから悩むことはなくなったなw 上記をさらに発展して、関数化すれば以下のようになる。 hoge() { a=0 while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... } ls | hoge そうするとa変数は実質ローカル変数として扱ってるんだから スコープ的にはこっちのほうが適切だと気づくだろう
- 735 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:53:21.70 ID:fust4gpU.net]
- >>723
> 内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか? 使い分けるんだよ。 ローカル変数化したいならサブシェルを使う。 そうでないならサブシェルを使わないって。
- 736 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 19:56:56.36 ID:8eIOCDAd.net]
- >>725
なんか教えたがりのようですけど、ちょっと無理があるかなと あくまでも「他の言語的感覚では」が前提、それとは違うというのの確認でしかないんですけど 使い分けるとかそもそも内部変数の話はしてないんですよ
- 737 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:00:53.41 ID:fust4gpU.net]
- >>726
他の言語感覚って言うけど、 じゃあお前いくつ言語しってんの?って話だよ。 狭い言語の知識=言語の全てって思ってるだけさ
- 738 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:02:16.96 ID:8eIOCDAd.net]
- そもそものそもそもは、bcの毎回起動するのに時間がかかるというので、せっっかくの標準で暗黙的にもマルチプロセスなのでサーバ&クラアント的に起動しとけばいいんじゃねと
trap 'exec 8>&-; exec 7>&-; rm -f from-server to-server' EXIT mkfifo from-server mkfifo to-server exec 8<> to-server exec 7<> from-server < to-server bc -l > from-server & calc () { echo "$*" > to-server read result < from-server echo $result } てのを書いたのよ、単なる興味的にどれだけのコスト削減できるのかを試し確認するために。で、この一連の(他の言語的には)思ってもいなかったとこでコストがあるなと。その確認だけだよ。で、やっぱり>>721のようなことだなとw
- 739 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:02:43.57 ID:8eIOCDAd.net]
- >>727
はいはい
- 740 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:09:04.89 ID:fust4gpU.net]
- >>728
どの言語でも、その言語を知らなければ、その言語特有の所でコストがかかるってだけだ だからちゃんとその言語を知らなければいけない。
- 741 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 20:10:22.49 ID:8eIOCDAd.net]
- はいはい。知っていることを延々と言われても。それも聞いてもいないのに
- 742 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:09:03.88 ID:/EdGAgHY.net]
- >>726
つうか、お前の感覚の話なんか誰にもわからんだろ。 だから、馬鹿だと言う前提で説明してるだけじゃん? それすら理解できないってことはやはり馬鹿なんだなぁと思うばかり。
- 743 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:21:30.07 ID:T/R8ZN8b.net]
- ろくにシェルスクリプトのことを知らないから聞いてみた。
親切に教えてくれる人がいた。 ……何が不満なんだ?
- 744 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:25:17.92 ID:8eIOCDAd.net]
- 何がお怒りのなのかさっぱりですけどw
- 745 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:31:30.87 ID:8eIOCDAd.net]
- よくわからないが、他の言語で
func() と a = func() で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718で 関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw
- 746 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 21:52:27.77 ID:fust4gpU.net]
- すべての言語はそれぞれ違っているんだが、
同じ言語がほしいのか?
- 747 名前:デフォルトの名無しさん [2019/10/01(火) 21:57:08.01 ID:Ueonb/Q5.net]
- みんな違って
みんないい まつお
- 748 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:01:17.19 ID:8eIOCDAd.net]
- >>736
相変わらずだね。何を言いたいのかさっぱり 返り値を使う(関数)使わない(サブルーチン)でコストがこんなにあるって話なのに
- 749 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:14:23.82 ID:8eIOCDAd.net]
- そうだ、ksh(zsh)ならreadでと思ったら、逆に遅くなるのね
hoge | read a サブシェルになるのはhoge。kshはパイプでもパイプを使わずになんちゃらを使ってなんとかかんとかwとかあったからちょっと期待したのに あれだな、そもそもシェルスクリプトの関数の返り値はreturnでの実行ステータスしかない、それ以外の形態(テキスト)は考えていませんからこんな感じにしかなりませんってとこか
- 750 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 22:58:18.96 ID:9HRGRt02.net]
- for ループは、while よりも遅いだろ。
bash も、dash よりも遅いだろ ループでは、for, bashを使わない方が速い
- 751 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:34:09.29 ID:DttT1lmW.net]
- returnが返り値ってw
あれはエラー情報だろ 例外と同じ。
- 752 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:35:42.98 ID:DttT1lmW.net]
- パイプで処理をつなげていくシェルスクリプトにおいて
返り値=出力なんだよ 出力を読み取って、処理して出力する そういう基本がわかってないだけ
- 753 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:53:15.78 ID:8eIOCDAd.net]
- return
なんすけど。returnの意味知ってる?とかいう。いや、しつれい エラー情報でもない、単なる終了ステータス。exit ではないのは、まあ、関数だからと、exit と区別がつかないからかなw
- 754 名前:デフォルトの名無しさん mailto:sage [2019/10/01(火) 23:59:02.30 ID:8eIOCDAd.net]
- function name () { }
が、POSIXではないのは(これからも採用されないかも?採用するの?)というのは、関数じゃねえー、所詮コマンドだなというとこかなと思ったりしてみたり、今回w >>742そのレベルで馬鹿にできるのはあなたがそのレベルと言っているようなもんかなとw てか、return なのにそれを返り値と見るのを頭から否定するのは、いままでの同一人物としか思えないんだけど。シェルスクリプトは知っているがシェルスクリプトしか知らないシェルスクリプトにだけ拘るw
- 755 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:19:13.78 ID:DWeKr+Az.net]
- >>743
returnの意味は「帰る」 何かを戻すという意味はない
- 756 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:20:54.57 ID:238K9SSk.net]
- マジで言ってるの?もっと勉強しよう、他人にアタるならw
- 757 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:20:59.41 ID:DWeKr+Az.net]
- アセンブラでもreturn(RET)がある。
これも戻るという意味なだけ 呼び出し元に何かを戻すという意味はない
- 758 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:23:56.96 ID:238K9SSk.net]
- アセンブラでもマクロアセンブラはあったりするけどな
戻り値をどういう形態で(どのレジスタにとか)という決まりであれば >呼び出し元に何かを戻すという意味はない マジで言っているの?アホらしい
- 759 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:25:12.52 ID:DWeKr+Az.net]
- >>748
「マジでいってんの」しか言ってないよなw returnを翻訳してみろ。戻るという意味しかない
- 760 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:26:09.34 ID:DWeKr+Az.net]
- https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_24
returnの説明にも、nは終了ステータスと書いてある。 return valueとは書いていない
- 761 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 00:30:13.30 ID:238K9SSk.net]
- 言うならアセンブラでなくて機械語だな。ほんとにしょうもない知識自慢
>>749 >returnを翻訳してみろ。戻るという意味しかない マジで言ってるのとしか言えんやん。「return なんとか」とか普通にあるぞ? >>743 にreturnしか書いてないからか?なんかしょうもないなああwなんかしょうもないけど、だったらなんかすまんな >>750 関数として見たらだよ。すでにそういうことは>>743,744で言っているんだけど 所詮コマンドだなで終わってるよ
- 762 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:32:56.67 ID:o4tQ0hze.net]
- >>735
よく分からないで批判する癖は辞めた方が良い
- 763 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:35:11.54 ID:o4tQ0hze.net]
- >>751
機械語にreturnに類する語は出てこないぞ?
- 764 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:35:40.52 ID:238K9SSk.net]
- 「よくわからない」が何を指しているのか「よくわからない」だろう?
また単なる「語」に食いつくwいつものかとしか思えません
- 765 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:36:26.76 ID:238K9SSk.net]
- >>753
イミフ。機械語は01だからな。そんな話はしてない やっぱりいつものかw
- 766 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:39:39.82 ID:238K9SSk.net]
- 同一人物かどうか知らんが、>>742から同じ人物としてしまう、もうw
同じ「レベルw」でしかも同じ姿勢としか思えないので。もう十二分にそのレベルwを自ら率先して晒してしまったので>>744の後半で正解だったなと あとはもう「教えてww」やんない
- 767 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:53:53.42 ID:o4tQ0hze.net]
- いつもの妄言を喚いて自分の敵は一人だと思い込んでる痛い奴だったか
- 768 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 01:55:39.44 ID:238K9SSk.net]
- 敵www
そういう姿勢だったのね。そうだよね、あなたはw
- 769 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:46:06.49 ID:JFJLbhDm.net]
- IDが変わっても判別しやすいのはいいこと
ぼんやりしてて助かる
- 770 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:51:03.64 ID:o4tQ0hze.net]
- >>758
いやおまえ、オレと関係ない人を同一人物扱いしてんじゃん
- 771 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 02:58:29.05 ID:238K9SSk.net]
- >>760
>>756をよーく読もうな。読めない? >>753は何を言いたいの? 機械語は01だからreturnに対する語はないと言いたいの?ととって、ああまたかというw>>756なんだよ(よく読んでねw) >機械語にreturnに類する語は出てこないぞ? って、どういう意味?俺の理解とは別でならすまんかったちょっと続ける?
- 772 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:24:37.13 ID:DWeKr+Az.net]
- 知らないなら言わなければいいのにw
RET命令(Return from Procedure) softwaretechnique.jp/OS_Development/Tips/IA32_Instructions/RET.html
- 773 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:28:45.47 ID:238K9SSk.net]
- >>762
なにを言いたいのかさっぱりなんですが、具体的に自分のお言葉でお願い まさか、RETはあるがReturnは無いではないだろうし、さっぱりわからん (そしてなんで同じやねん、その姿勢w)
- 774 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:43:25.73 ID:DWeKr+Az.net]
- 同じだだろ。何いってんの?
略だから違うんだって言いたいの?
- 775 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:44:26.53 ID:o4tQ0hze.net]
- >>762
そしてそれはアセンブリ言語という..
- 776 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:46:58.80 ID:DWeKr+Az.net]
- シェルスクリプトのreturnは終了ステータスを返すもので
これは他の言語の返り値ではないのは一目瞭然なんだがね だからこそ $_ という変数(外部コマンドを呼び出した時の終了ステータス)で アクセスできるわけだし しらないならシェルスクリプトを勉強してくださいって言うしか無いな なんならbashのドキュメント引用しようか? return [n] 指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマン ドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行 中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの 終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以 外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラッ プ に設定されたコマンドが実行されます。
- 777 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:47:32.93 ID:DWeKr+Az.net]
- >>765
その違いは今、重要なのか?w returnの意味なんて言語によって違うって話をしてるんだが
- 778 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:49:09.36 ID:238K9SSk.net]
- >>764
マジか 残念ながらが同一人物に見えるとやはりなお思ってしまうよw マジか。そんなんで偉ぶるwなんの意味があるのだかさっぱり そもそもマシン語ではない、アセンブリ=ニーモニックだし。ニーモニック命令は3文字にという昔の風習なだけだろうに 豆知識 そもそも、そんなRETでもいいけどReturnすらないCPUもある。POPしてジャンプという なんだかなあ
- 779 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 03:55:47.57 ID:238K9SSk.net]
- あら。なんかすまん、別人なのね
>>766 んー、なんで「知らない」前提なのかさっぱりわからん。一般的な関数の形態としての話だし、その言っていることは>>743,744で書いているのだけど(もちろんそんなことは前々から知っていての) あくまでも関数の形態としてのreturn文ね。わからないかなあ なにか俺は知らないを前提に書いているようだけど、なんで??
- 780 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 04:19:21.82 ID:238K9SSk.net]
- ん??
ID:DWeKr+Az が頓珍漢に横入りしたのかwwなにをのたまっているのかだかな。もうあんたはいいよw同じこと繰り返してるし >>768,769はID:o4tQ0hzeかと思って書いた >>761はID:o4tQ0hze にご理解いただけたということでよろしいのですかね??
- 781 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 06:38:15.47 ID:Ge1fP5ct.net]
- シェルスクリプトはシェルスクリプトだっていってんのに
俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない! といわれても、 うんじゃあ、シェルスクリプトを使えるように、シェルスクリプトの勉強をしましょうか? としか言えんわなw
- 782 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 07:03:56.09 ID:R26grXOk.net]
- アセンブラじゃなくて機械語だってすごいよなw
- 783 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 08:47:07.26 ID:238K9SSk.net]
- >>771
どう読んで、そう思っているのか?? 俺は他の言語しか知らん。シェルスクリプトは他の言語じゃない!なんてこれっぽっちも言ってないけど 他の言語の関数とはやっぱ違う他の言語の関数と同じようにはできないねというだけだが?端的には>>735と所詮コマンドということ POSIXとしてもfunctionと名乗ってるけど、一般的=他の多くの言語のfunctionとは違うfunction、functionというよりコマンドだなやっぱちう それがシェルスクリプトのfunctionで他の言語のfunctionとは違うって強く俺に言いたいんですかね? いいよ、めんどくさいから読まなくても。レスするのもめんどくさいからw >>772 まあ、そういう意味じゃないんだけどね(どういう意味のレスなのかイマイチだがw) マクロアセンブラがあるようにアセンブラはどのようにもできる、やろうと思えば。縛りはそこじゃなくて、機械語だなという また、機械語になんて関数なんて概念ないからねって話にも膨らむのになというw
- 784 名前:デフォルトの名無しさん [2019/10/02(水) 09:15:47.03 ID:gGwgwb6G.net]
- 俺はたぬきしか知らないなんて言ってない!
みかんはたぬきとは違う!
- 785 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:19:32.36 ID:R26grXOk.net]
- 機械語に関数の概念が無いってすごいよなw
- 786 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:23:09.06 ID:238K9SSk.net]
- めんどくせえなあ。とんちんかんな変すぎるレスいらんw
知らなかったのはサブルーチンとして使うのと関数として使うのにコストの差が思った以上にあったというだけだな。functionなんだからそんなに差が無いようになんかあるだろうと思い込みによる それだけだよ 別にだから
- 787 名前:関数のように使わないとも言わんし、いままでも使ってるし変わらずに使うけど []
- [ここ壊れてます]
- 788 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:25:03.86 ID:238K9SSk.net]
- >>775
無いよ。機械語を駆使して関数を作ってるっていう 機械語レベルの関数って?まあ、そんなCPUがもしかしたらあるのかもだが、知らんんなあ
- 789 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 09:39:55.43 ID:238K9SSk.net]
- 機械語にはサブルーチンはある。なきゃ困る(主にどこのアドレスに返ってくるのかのため)。単なるサブルーチンコール、引数の概念とかも無いw
引数も返り値(サブルーチン+返り値=関数)も、単なるmoveとかpushとかで「適当」なとこに入れての(主に高級言語(ほぼCだが)の仕様にあわせての)で、機械語の概念では存在しない おしまい
- 790 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:11:40.69 ID:caSqV8Sl.net]
- これマジ?
- 791 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:39:50.67 ID:238K9SSk.net]
- この板にもあるだろうと思ったらあったし、
「関数」で検索したらアセンブリで関数というのを説明しているようなレスもあるやん 調べろよそのぐらいw
- 792 名前:デフォルトの名無しさん mailto:sage [2019/10/02(水) 10:46:24.58 ID:238K9SSk.net]
- ああ、すまん。勇み足だった。よく読んだらあんま詳しくはないかな
ある程度知っていての注意点ぐらいだった
|

|