[過去ログ]
シェルスクリプト総合 その31 (1002レス)
シェルスクリプト総合 その31 http://mevius.5ch.net/test/read.cgi/tech/1565446670/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
709: デフォルトの名無しさん [sage] 2019/10/01(火) 16:40:08.47 ID:8eIOCDAd hoge () { echo "Hello" } for i in $(seq 1000); do hoge a=$(hoge) done myfunc と a=$(myfunc) の実行時間の差はなんなん?標準出力を横取りするためだけにしてはコストが高いかな 簡単に思いつくのは横取りするためパイプでで別プロセスにしなきゃとかかな? http://mevius.5ch.net/test/read.cgi/tech/1565446670/709
712: デフォルトの名無しさん [sage] 2019/10/01(火) 16:54:32.38 ID:8eIOCDAd なるほど。ksh(だけが?)がなんか賢いかな。zsh他も差がある http://mevius.5ch.net/test/read.cgi/tech/1565446670/712
714: デフォルトの名無しさん [sage] 2019/10/01(火) 17:10:13.56 ID:8eIOCDAd 違う人じゃね?同一人物だったらアレだけどw http://mevius.5ch.net/test/read.cgi/tech/1565446670/714
715: デフォルトの名無しさん [sage] 2019/10/01(火) 18:59:48.82 ID:8eIOCDAd >>712 zsh他も差があるは、>>709で体感できる差があるが正しいか kshでも差があるね。ループ数増やせば体感できるほどの差となるね http://mevius.5ch.net/test/read.cgi/tech/1565446670/715
718: デフォルトの名無しさん [sage] 2019/10/01(火) 19:26:55.18 ID:8eIOCDAd >>716 内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ) zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw a=0 ls | while read line; do [ "$line" = 'hoge' ] && a=1 done [ a -eq 1 ] && ... っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど とりあえず、どうしようもないそういうものということでいいのね。どうも http://mevius.5ch.net/test/read.cgi/tech/1565446670/718
719: デフォルトの名無しさん [sage] 2019/10/01(火) 19:30:13.87 ID:8eIOCDAd >>717 せっかくですが、ちょい本題とは違うかな。そりゃ () は... なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど どうも http://mevius.5ch.net/test/read.cgi/tech/1565446670/719
721: デフォルトの名無しさん [sage] 2019/10/01(火) 19:41:25.43 ID:8eIOCDAd >>720 その続きなどを読んでよ。言われていることはすでに書いてあるんですけど どうしようもないという結論が得られたのでw、 結局、こんなことにもそれなりの差があるんだから「常時それも無条件で」実行時間の差があるなんて気にするなんて無意味だなと なにかそれが問題になったときに気にする対応すればいいだけだなという。のをそもそも言いたかったw http://mevius.5ch.net/test/read.cgi/tech/1565446670/721
723: デフォルトの名無しさん [sage] 2019/10/01(火) 19:51:56.19 ID:8eIOCDAd >>722 なにを教えてくれてるのか教えたいのかわからないです 内部変数?内部変数環境のことは言ってないです。他の言語でもの(内部)関数を呼ぶその返り値を使うって話なんですけど 内部変数云々ならhogeもサブシェルにしなくちゃじゃないですか?内部関数という言葉が悪かったならすまんすですけど http://mevius.5ch.net/test/read.cgi/tech/1565446670/723
726: デフォルトの名無しさん [sage] 2019/10/01(火) 19:56:56.36 ID:8eIOCDAd >>725 なんか教えたがりのようですけど、ちょっと無理があるかなと あくまでも「他の言語的感覚では」が前提、それとは違うというのの確認でしかないんですけど 使い分けるとかそもそも内部変数の話はしてないんですよ http://mevius.5ch.net/test/read.cgi/tech/1565446670/726
728: デフォルトの名無しさん [sage] 2019/10/01(火) 20:02:16.96 ID:8eIOCDAd そもそものそもそもは、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 http://mevius.5ch.net/test/read.cgi/tech/1565446670/728
729: デフォルトの名無しさん [sage] 2019/10/01(火) 20:02:43.57 ID:8eIOCDAd >>727 はいはい http://mevius.5ch.net/test/read.cgi/tech/1565446670/729
731: デフォルトの名無しさん [sage] 2019/10/01(火) 20:10:22.49 ID:8eIOCDAd はいはい。知っていることを延々と言われても。それも聞いてもいないのに http://mevius.5ch.net/test/read.cgi/tech/1565446670/731
734: デフォルトの名無しさん [sage] 2019/10/01(火) 21:25:17.92 ID:8eIOCDAd 何がお怒りのなのかさっぱりですけどw http://mevius.5ch.net/test/read.cgi/tech/1565446670/734
735: デフォルトの名無しさん [sage] 2019/10/01(火) 21:31:30.87 ID:8eIOCDAd よくわからないが、他の言語で func() と a = func() で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718で 関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw http://mevius.5ch.net/test/read.cgi/tech/1565446670/735
738: デフォルトの名無しさん [sage] 2019/10/01(火) 22:01:17.19 ID:8eIOCDAd >>736 相変わらずだね。何を言いたいのかさっぱり 返り値を使う(関数)使わない(サブルーチン)でコストがこんなにあるって話なのに http://mevius.5ch.net/test/read.cgi/tech/1565446670/738
739: デフォルトの名無しさん [sage] 2019/10/01(火) 22:14:23.82 ID:8eIOCDAd そうだ、ksh(zsh)ならreadでと思ったら、逆に遅くなるのね hoge | read a サブシェルになるのはhoge。kshはパイプでもパイプを使わずになんちゃらを使ってなんとかかんとかwとかあったからちょっと期待したのに あれだな、そもそもシェルスクリプトの関数の返り値はreturnでの実行ステータスしかない、それ以外の形態(テキスト)は考えていませんからこんな感じにしかなりませんってとこか http://mevius.5ch.net/test/read.cgi/tech/1565446670/739
743: デフォルトの名無しさん [sage] 2019/10/01(火) 23:53:15.78 ID:8eIOCDAd return なんすけど。returnの意味知ってる?とかいう。いや、しつれい エラー情報でもない、単なる終了ステータス。exit ではないのは、まあ、関数だからと、exit と区別がつかないからかなw http://mevius.5ch.net/test/read.cgi/tech/1565446670/743
744: デフォルトの名無しさん [sage] 2019/10/01(火) 23:59:02.30 ID:8eIOCDAd function name () { } が、POSIXではないのは(これからも採用されないかも?採用するの?)というのは、関数じゃねえー、所詮コマンドだなというとこかなと思ったりしてみたり、今回w >>742そのレベルで馬鹿にできるのはあなたがそのレベルと言っているようなもんかなとw てか、return なのにそれを返り値と見るのを頭から否定するのは、いままでの同一人物としか思えないんだけど。シェルスクリプトは知っているがシェルスクリプトしか知らないシェルスクリプトにだけ拘るw http://mevius.5ch.net/test/read.cgi/tech/1565446670/744
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.048s