[過去ログ]
シェルスクリプト総合 その31 (1002レス)
シェルスクリプト総合 その31 http://mevius.5ch.net/test/read.cgi/tech/1565446670/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
722: デフォルトの名無しさん [sage] 2019/10/01(火) 19:44:28.64 ID:fust4gpU >>718 > 内部関数なのにってとこがね 他の言語の場合、(基本的に)関数内の変数の変更は呼び出し元に反映されない。 つまりローカル変数になってるだろ? それと同じなんだよ。POSIXの範囲ではlocalもtypesetもないから シェルスクリプトにはローカル変数がない ように思えるが、実はサブシェルを使うからローカル変数は必要ない。とも言える。 ローカル変数を実現するためのサブシェルと言える。 サブシェルの仕様としてローカル変数は必須の機能だが、別プロセスにするのは必須ではない。 サブシェル(別プロセス)と捉えるから仰々しくなってるが、 変数のローカル化と考えれば、内部関数内の変数をローカル化するってだけだから 「内部関数なのに」とは思わないだろ? http://mevius.5ch.net/test/read.cgi/tech/1565446670/722
724: デフォルトの名無しさん [sage] 2019/10/01(火) 19:52:05.05 ID:fust4gpU >>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変数は実質ローカル変数として扱ってるんだから スコープ的にはこっちのほうが適切だと気づくだろう http://mevius.5ch.net/test/read.cgi/tech/1565446670/724
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
787: デフォルトの名無しさん [sage] 2019/10/02(水) 14:05:10.23 ID:D8VruPt/ >>718 , >>719 が既に頭悪そうなんだよ。その辺りから見直したらいいんじゃないかな。 http://mevius.5ch.net/test/read.cgi/tech/1565446670/787
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s