[過去ログ] シェルスクリプト総合 その31 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
472: デフォルトの名無しさん [sage] 2019/08/31(土) 15:57:20.87 ID:0iGUnrw4(6/10) AAS
>>470つ 外部リンク[html]:pubs.opengroup.org
707: デフォルトの名無しさん [sage] 2019/10/01(火) 15:50:14.87 ID:P1455Lxu(1) AAS
可搬性に異常に拘っているのは一人か二人しかいないけどな
可搬性に拘ってないというレスにも可搬性を押し付ける
719(2): デフォルトの名無しさん [sage] 2019/10/01(火) 19:30:13.87 ID:8eIOCDAd(6/18) AAS
>>717717(1): デフォルトの名無しさん [sage] 2019/10/01(火) 19:25:21.59 ID:fust4gpU(2/9) AAS
遅い原因の本質は標準出力のキャプチャじゃないから
この二つでも違いがでる
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
せっかくですが、ちょい本題とは違うかな。そりゃ () は...
なんで内部関数なのにサブシェルになんのかねん、他の言語的感覚ではという
まあ、内部関数だろうと、() と同じで $() もサブシェルになるということをおっしゃっりたいのでしょうけど
どうも
735(2): デフォルトの名無しさん [sage] 2019/10/01(火) 21:31:30.87 ID:8eIOCDAd(14/18) AAS
よくわからないが、他の言語で
func()
と
a = func()
で、こんな差があるのなんて、他にどの言語あるの?俺は知らない少々他の言語を知っているが
てか、そういうのは普通は「使えない」からそうならないようにするし、そもそもシングルプロセスを前提のが多いだろうから、他の一般的な言語でシェルスクリプトのようなのはちょっと思いつきません
func がまあ普通の速さなので、a = func もなんか他の方法があるのかなと。無いという確認はとれてお礼も言っているのになあ>>718718(4): デフォルトの名無しさん [sage] 2019/10/01(火) 19:26:55.18 ID:8eIOCDAd(5/18) AAS
>>716
内部関数なのにってとこがね&普通の他の言語とはやはり違うな(まあ当然だが)という(内部汚染とかこれの本題ではないっすよ)
zshはkshを習ってだけど、ちょこちょこ習えてないなあ。kshの否定面のレスだけど、kshは人に優しいとこもあるとも思うw
a=0
ls | while read line; do
[ "$line" = 'hoge' ] && a=1
done
[ a -eq 1 ] && ...
っていう見た目他の言語的では当たり前のがちゃんと動くというwまあ、異端だけど
とりあえず、どうしようもないそういうものということでいいのね。どうも
で
関係ない(知っていることを)ことを延々とでいい加減してくれというのはあったけどw
815: デフォルトの名無しさん [sage] 2019/10/03(木) 20:23:06.87 ID:Fw9k5QN4(4/4) AAS
少数なんて大体でしかないなんて常識だと思ってたのにな。少数使わないでも結局できたりするので、また、固定少数でも結局工夫が必要なのには変わりないので
なんでそんなに少数の正しさに拘っているのだか、どういう業界でそういうのをしかもスクリプトオンリーで書かなきゃならないって想像できないな
922: デフォルトの名無しさん [sage] 2019/10/18(金) 11:55:18.87 ID:O8T9zLoM(1) AAS
>>921921(1): デフォルトの名無しさん [sage] 2019/10/18(金) 11:02:02.61 ID:lmpJOwiE(1) AAS
find使うのは有りだと思うがmaxdepthとquitをつけたほうが良い
if test -n "$(find . -maxdepth 1 -name "*.txt" -print -quit)"; then
echo "OK"
else
echo "NG"
fi
ただしそれらは POSIX 準拠ではない
外部リンク[html]:pubs.opengroup.org
998(1): デフォルトの名無しさん [sage] 2019/10/26(土) 16:30:08.87 ID:0I+FrAtF(8/8) AAS
あーいつものマウントとらないと死ぬ病気のやつか
おだいじに
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s