シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/)
探検
シェルスクリプト総合 その28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/07/24(火) 11:01:16.36ID:r0TJj2hB557デフォルトの名無しさん
2018/09/01(土) 17:30:46.73ID:qlVPfHnQ558デフォルトの名無しさん
2018/09/01(土) 17:43:01.15ID:vZp6TokW 何行以上なら大規模なのか、1人で開発したら大規模と言えるのか。
シェルスクリプト環境自体がシェルスクリプトを用いた大規模分散開発の成果と言えるのかもしれない。
という夢を見た
シェルスクリプト環境自体がシェルスクリプトを用いた大規模分散開発の成果と言えるのかもしれない。
という夢を見た
559デフォルトの名無しさん
2018/09/01(土) 17:46:41.85ID:mPcVbgud >>557
ありがとう。やっぱりうちのOpenWrtでは動きそうもないね。
ありがとう。やっぱりうちのOpenWrtでは動きそうもないね。
560デフォルトの名無しさん
2018/09/01(土) 17:47:16.28ID:qlVPfHnQ >>559
なぜ?
なぜ?
561デフォルトの名無しさん
2018/09/01(土) 17:59:21.16ID:mPcVbgud >>560
最初に思ったのが、glibcではないから。
たしかuClibcだっけ?と思ったが、musl libcに変わっていた。
glibc互換らしいから動くかもしれない。
次に思ったのがCPU。うちのルータは MIPS
ここを見るとARMはあるがMIPSはないのでアウト。動かない
https://www.microsoft.com/net/download/dotnet-core/2.2
おまけでARMのコアバイナリサイズ。圧縮状態で30MB近くある
展開したら60MB?。空き容量は10MBしかないので到底入らない。
ちなみにOpenVPNとか入れるんで10MB全部使えるわけじゃない
USBメモリを使うという裏技があるから不可能ではないが。
あとは使用メモリも気になるな。高スペックルータなので、
128MB"も"搭載されているが、どれくらいメモリ食うんだろうね
最初に思ったのが、glibcではないから。
たしかuClibcだっけ?と思ったが、musl libcに変わっていた。
glibc互換らしいから動くかもしれない。
次に思ったのがCPU。うちのルータは MIPS
ここを見るとARMはあるがMIPSはないのでアウト。動かない
https://www.microsoft.com/net/download/dotnet-core/2.2
おまけでARMのコアバイナリサイズ。圧縮状態で30MB近くある
展開したら60MB?。空き容量は10MBしかないので到底入らない。
ちなみにOpenVPNとか入れるんで10MB全部使えるわけじゃない
USBメモリを使うという裏技があるから不可能ではないが。
あとは使用メモリも気になるな。高スペックルータなので、
128MB"も"搭載されているが、どれくらいメモリ食うんだろうね
562デフォルトの名無しさん
2018/09/01(土) 18:00:20.51ID:mPcVbgud 訂正
× おまけでARMのコアバイナリサイズ。圧縮状態で30MB近くある
○ おまけでARM版の.NET Coreランタイムのバイナリサイズ。圧縮状態で30MB近くある
× おまけでARMのコアバイナリサイズ。圧縮状態で30MB近くある
○ おまけでARM版の.NET Coreランタイムのバイナリサイズ。圧縮状態で30MB近くある
563デフォルトの名無しさん
2018/09/01(土) 18:02:43.20ID:7GOU6dDm ちょっと理解に苦しむんだが、ルーターで大規模開発するわけ?
564デフォルトの名無しさん
2018/09/01(土) 18:02:59.63ID:/wwW4VSs ちっちゃいコマンドを一杯つくって
そのコマンドを一杯組み合わせてどんどんコマンド作るのには最適
標準入出力でひたすら組み合わせて使えるのがベストだ
一つのシェルスクリプトでたくさんの機能の処理を書こうというのが
そもそもの間違い
単体のシェルスクリプトで完結して使える簡単な機能を作る
わかりましたか
そのコマンドを一杯組み合わせてどんどんコマンド作るのには最適
標準入出力でひたすら組み合わせて使えるのがベストだ
一つのシェルスクリプトでたくさんの機能の処理を書こうというのが
そもそもの間違い
単体のシェルスクリプトで完結して使える簡単な機能を作る
わかりましたか
565デフォルトの名無しさん
2018/09/01(土) 18:08:41.62ID:mPcVbgud566デフォルトの名無しさん
2018/09/01(土) 18:10:57.55ID:7GOU6dDm >>561
じゃあmonoで良いやん
じゃあmonoで良いやん
567デフォルトの名無しさん
2018/09/01(土) 18:14:25.88ID:eduRMzlf シェルしか書けないジジイが必死だな
568デフォルトの名無しさん
2018/09/01(土) 18:19:40.37ID:mPcVbgud >>564
いやわからんw
「簡単な機能」とはどういう機能なのか
理論的には、たくさんのコマンドを組み合わせるだけという
シェルスクリプトに適した単純な機能であっても、その量が多くなれば大規模になるだろう?
「機能の種類や複雑さ」と「機能の量」は別々の概念だ
俺にとっては大規模といったら10万行超えるぐらいのものなんだが、
その前提でいいのであれば1000行程度は小規模だろう。だがその
1000行でもライブラリあったほうが楽になるだろうと用意に予測できる
例えばgit subtreeが865行だな
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh
いやわからんw
「簡単な機能」とはどういう機能なのか
理論的には、たくさんのコマンドを組み合わせるだけという
シェルスクリプトに適した単純な機能であっても、その量が多くなれば大規模になるだろう?
「機能の種類や複雑さ」と「機能の量」は別々の概念だ
俺にとっては大規模といったら10万行超えるぐらいのものなんだが、
その前提でいいのであれば1000行程度は小規模だろう。だがその
1000行でもライブラリあったほうが楽になるだろうと用意に予測できる
例えばgit subtreeが865行だな
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh
569デフォルトの名無しさん
2018/09/01(土) 18:23:56.55ID:+0pKcVMh 理論とか言い出しちゃった
570デフォルトの名無しさん
2018/09/01(土) 18:38:06.88ID:+0pKcVMh 誰が提唱した理論だろう?
謎理論?
謎理論?
571デフォルトの名無しさん
2018/09/01(土) 18:42:01.49ID:mPcVbgud シェルスクリプトが大規模に向いてないという理由を
誰も答えてくれないので俺が書いてやる
まず前提としてどんな言語であっても、言語だけでは大規模開発を
するのは無理RubyでもC#でもJavaであってもだ。
少し前まではJavaScriptも大規模開発に向かないと
言われていたはずだ。それが解決したのは何故か?
大規模開発をするのに必要なのは言語じゃない。フレームワークとライブラリだ。
どんな言語でも大規模開発するためにフレームワークとライブラリを使うだろう?
逆にこれらを使わないで大規模開発なんて到底無理だろ?
JavaScriptが大規模開発できるようになったのも、
フレームワークとライブラリが補完されたからだよ。
シェルスクリプトも昔のJavaScriptと同じ状況。
といっても俺はシェルスクリプトで大規模開発をすることには興味がなく、
せいぜい数千行程度の中規模ぐらいまでしかやることはないだろう。
何故かと言うと単にシェルスクリプトに適した内容で
10万行を超えるようなものが思いつかないからだ
だがそれはシェルスクリプトで大規模開発ができないということにはならない。
実際USPとかいうので、無印良品や東急ハンズのシステムが作られている(いた?)だろ
http://www.atmarkit.co.jp/news/200909/07/lltv03.html
https://www.hands-lab.com/tech/entry/62.html
(適してないとは思うが)足りない部分を補えば大規模開発だってできることは証明済みだよ
まとめると、現在のシェルスクリプトが大規模開発に向いてないのは
フレームワークやライブラリが不足しているから。
俺がシェルスクリプトで大規模開発をやらないのは、
シェルスクリプトが適した内容で大規模なものを思いつかないから。
それはそれとして中規模を小規模にするためのフレームワークやライブラリは欲しい。
誰も答えてくれないので俺が書いてやる
まず前提としてどんな言語であっても、言語だけでは大規模開発を
するのは無理RubyでもC#でもJavaであってもだ。
少し前まではJavaScriptも大規模開発に向かないと
言われていたはずだ。それが解決したのは何故か?
大規模開発をするのに必要なのは言語じゃない。フレームワークとライブラリだ。
どんな言語でも大規模開発するためにフレームワークとライブラリを使うだろう?
逆にこれらを使わないで大規模開発なんて到底無理だろ?
JavaScriptが大規模開発できるようになったのも、
フレームワークとライブラリが補完されたからだよ。
シェルスクリプトも昔のJavaScriptと同じ状況。
といっても俺はシェルスクリプトで大規模開発をすることには興味がなく、
せいぜい数千行程度の中規模ぐらいまでしかやることはないだろう。
何故かと言うと単にシェルスクリプトに適した内容で
10万行を超えるようなものが思いつかないからだ
だがそれはシェルスクリプトで大規模開発ができないということにはならない。
実際USPとかいうので、無印良品や東急ハンズのシステムが作られている(いた?)だろ
http://www.atmarkit.co.jp/news/200909/07/lltv03.html
https://www.hands-lab.com/tech/entry/62.html
(適してないとは思うが)足りない部分を補えば大規模開発だってできることは証明済みだよ
まとめると、現在のシェルスクリプトが大規模開発に向いてないのは
フレームワークやライブラリが不足しているから。
俺がシェルスクリプトで大規模開発をやらないのは、
シェルスクリプトが適した内容で大規模なものを思いつかないから。
それはそれとして中規模を小規模にするためのフレームワークやライブラリは欲しい。
572デフォルトの名無しさん
2018/09/01(土) 18:46:31.18ID:IN1XIdeB 休日は議論が捗りますね
573デフォルトの名無しさん
2018/09/01(土) 18:46:41.92ID:/wwW4VSs コマンドラインインタープリタを自動化したもんを
シェルスクリプトとというの
頭悪いバカのみんな分かった?
頭悪いバカは用途がわかってない、、、
シェルスクリプトとというの
頭悪いバカのみんな分かった?
頭悪いバカは用途がわかってない、、、
574デフォルトの名無しさん
2018/09/01(土) 18:49:33.52ID:/wwW4VSs たとえばなこのスレにいるような
コマンド叩ける程度の知能しかないオペレーターみたいなヤツが
シェルスクリプトだったらいっぱい自動でコマンド叩けると
必死に主張してるワケ
コマンド叩ける程度の知能しかないオペレーターみたいなヤツが
シェルスクリプトだったらいっぱい自動でコマンド叩けると
必死に主張してるワケ
575デフォルトの名無しさん
2018/09/01(土) 18:55:47.33ID:mPcVbgud お、今気づいたが、git subtreeってそのオプションの多さに比べて、
コードが少し少ないんじゃないか?と思ったら、
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L11-L33
OPTS_SPECを定義して、git rev-parse --parseopt つかって
何やらオプションを正規化してるんだな
gitにこんな機能があったとは
とは言え、劇的にコードが減ってるわけじゃないから
これなら http://docopt.org/ の方が優れてるな
コードが少し少ないんじゃないか?と思ったら、
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L11-L33
OPTS_SPECを定義して、git rev-parse --parseopt つかって
何やらオプションを正規化してるんだな
gitにこんな機能があったとは
とは言え、劇的にコードが減ってるわけじゃないから
これなら http://docopt.org/ の方が優れてるな
576デフォルトの名無しさん
2018/09/01(土) 18:59:35.38ID:mPcVbgud577デフォルトの名無しさん
2018/09/01(土) 19:05:44.41ID:/wwW4VSs シェルスクリプトでじかに文字列の処理なんかしないからな
sedやawkを使っても
頭が致命的に悪いとコレもシェルスクリプトで書いてやりたいとなるわけか
なるほどな
sedやawkを使っても
頭が致命的に悪いとコレもシェルスクリプトで書いてやりたいとなるわけか
なるほどな
578デフォルトの名無しさん
2018/09/01(土) 19:08:19.43ID:jmAsDv6y なんの話してたんだっけ?
579デフォルトの名無しさん
2018/09/01(土) 19:09:38.27ID:mPcVbgud サマータイムスレにもいた半角使いのキチガイ野郎かな?
みんな、こいつの味方するの?w
みんな、こいつの味方するの?w
580デフォルトの名無しさん
2018/09/01(土) 19:10:41.10ID:mPcVbgud581デフォルトの名無しさん
2018/09/01(土) 19:17:26.68ID:HKyHRnHf >>568
その理論について詳しく教えてくれw
その理論について詳しく教えてくれw
582デフォルトの名無しさん
2018/09/01(土) 19:20:00.37ID:mPcVbgud583デフォルトの名無しさん
2018/09/01(土) 19:22:31.10ID:4jvmXnIZ ム版来たせいで、ム版名物の半角君も長文君も呼び寄せちゃったか…
584デフォルトの名無しさん
2018/09/01(土) 19:25:33.74ID:HKyHRnHf585デフォルトの名無しさん
2018/09/01(土) 19:27:13.01ID:mPcVbgud >>583
その「長文君」がム板に来る流れを作った張本人という可能性は考えないのかい?w
その「長文君」がム板に来る流れを作った張本人という可能性は考えないのかい?w
586デフォルトの名無しさん
2018/09/01(土) 19:54:56.43ID:HKyHRnHf587デフォルトの名無しさん
2018/09/01(土) 19:55:19.76ID:4jvmXnIZ 嫌われ者の長文君ち〜ッス
588デフォルトの名無しさん
2018/09/01(土) 21:04:14.49ID:2NCbxz5b >>583,587
その二人ともなぜか 俺だけ 優秀と思っている不思議さwだから嫌われ者同士でも互いに嫌ってるのかww
その二人ともなぜか 俺だけ 優秀と思っている不思議さwだから嫌われ者同士でも互いに嫌ってるのかww
589デフォルトの名無しさん
2018/09/01(土) 22:34:21.93ID:/wwW4VSs オレが優秀なワケじゃない
オマエが健常者じゃないだけだからな
まずそこを自覚しないといけない
そこを勘違いしたらダメなワケ
オツムに軽度の障害があるとみなせるぐらい知能に問題がある
オマエが健常者じゃないだけだからな
まずそこを自覚しないといけない
そこを勘違いしたらダメなワケ
オツムに軽度の障害があるとみなせるぐらい知能に問題がある
590デフォルトの名無しさん
2018/09/01(土) 22:59:24.12ID:2NCbxz5b 別にそういう個別特定なのはいいのねん
お前には俺(のレス)がそう見えるというのはお前の価値観からそう見えるのはしょうがない
だがしかし、お前の場合はレス個別に対してじゃないのもあるからな。不特定多数のも。自称健常者は敵が多いからなのか??w
お前には俺(のレス)がそう見えるというのはお前の価値観からそう見えるのはしょうがない
だがしかし、お前の場合はレス個別に対してじゃないのもあるからな。不特定多数のも。自称健常者は敵が多いからなのか??w
591デフォルトの名無しさん
2018/09/01(土) 23:12:57.65ID:2NCbxz5b wwww いや、笑った。すげえなww
低学歴 知恵遅れ 健常者じゃない と、どこのスレでもどのレスでもそういう言葉があるな。すごいなww
ちょっと頭のおかしな人が道中をぶつくさ他人に悪態ついてるのと似てると思うけどなあ。「健常者」なんて普通使わないと思うけど、もしかしたらマジ病気のひと?ww
普通に会話、普通のレスできないの?あったとしたらすまん、あまりにもあういうのばかりで見逃したかもw
低学歴 知恵遅れ 健常者じゃない と、どこのスレでもどのレスでもそういう言葉があるな。すごいなww
ちょっと頭のおかしな人が道中をぶつくさ他人に悪態ついてるのと似てると思うけどなあ。「健常者」なんて普通使わないと思うけど、もしかしたらマジ病気のひと?ww
普通に会話、普通のレスできないの?あったとしたらすまん、あまりにもあういうのばかりで見逃したかもw
592デフォルトの名無しさん
2018/09/01(土) 23:17:02.98ID:/wwW4VSs オレと会話したいの?
残念なことにな、知恵遅れとまともな人間のあいだでは
会話が成立しない
プロトコルが違う
オレと会話したいなら
まず相応のプロトコルを身につけてからだ
残念なことにな、知恵遅れとまともな人間のあいだでは
会話が成立しない
プロトコルが違う
オレと会話したいなら
まず相応のプロトコルを身につけてからだ
593デフォルトの名無しさん
2018/09/01(土) 23:17:24.80ID:mPcVbgud 他スレで長文書いてたw まあ話は進んでないみたいだが
https://medaka.5ch.net/test/read.cgi/php/1474523013/854
https://mevius.5ch.net/test/read.cgi/hp/1533007852/229
今更だがsedって意外と便利に使えるのな。正規表現による範囲指定とか
s///使った単なる置換ぐらいにしか使ってなかった。
書いていたコードが短くなりそうで嬉しいw
https://medaka.5ch.net/test/read.cgi/php/1474523013/854
https://mevius.5ch.net/test/read.cgi/hp/1533007852/229
今更だがsedって意外と便利に使えるのな。正規表現による範囲指定とか
s///使った単なる置換ぐらいにしか使ってなかった。
書いていたコードが短くなりそうで嬉しいw
594デフォルトの名無しさん
2018/09/01(土) 23:18:54.31ID:J8s4Euww 長文はキチガイ
595デフォルトの名無しさん
2018/09/01(土) 23:41:04.17ID:Z9gelboG yesコマンドってPOSIXユーティリティじゃないのか……。
596デフォルトの名無しさん
2018/09/01(土) 23:46:09.11ID:2NCbxz5b >>592
会話のためじゃなかった、なんの為に数々のレスしているの?君は
まあ、自己顕示欲承認欲求からだけだろうなというのは、数々のレスからは垣間見えるけど、そういうことなのね、そういうことでいいのねw
会話のためじゃなかった、なんの為に数々のレスしているの?君は
まあ、自己顕示欲承認欲求からだけだろうなというのは、数々のレスからは垣間見えるけど、そういうことなのね、そういうことでいいのねw
597デフォルトの名無しさん
2018/09/02(日) 00:04:43.96ID:Tb3tt8fk この板をまともな板にするために
この板でレスしてる
オマエみたいな頭悪い低学歴知恵遅れが幅きかせて
いま、この板は正常に機能してない
低学歴知恵遅れは低学歴知恵遅れの自覚がない
しかも自己評価だけは高い
その分タチがワルイ
まともな人間が近寄らない
そしてその自覚すらない
その自覚がないから更生もしない
つまり更生することもないから排除しかない
つまりオレは
素晴らしく情報価値が高いレスを提供すると同時に
この板から低学歴知恵遅れのクソニート、底辺ITドカタを排除する作業を実施している
わかった?
まともな板にするためにな
ひたすらオレはレスをしている
わかった?
この板でレスしてる
オマエみたいな頭悪い低学歴知恵遅れが幅きかせて
いま、この板は正常に機能してない
低学歴知恵遅れは低学歴知恵遅れの自覚がない
しかも自己評価だけは高い
その分タチがワルイ
まともな人間が近寄らない
そしてその自覚すらない
その自覚がないから更生もしない
つまり更生することもないから排除しかない
つまりオレは
素晴らしく情報価値が高いレスを提供すると同時に
この板から低学歴知恵遅れのクソニート、底辺ITドカタを排除する作業を実施している
わかった?
まともな板にするためにな
ひたすらオレはレスをしている
わかった?
598デフォルトの名無しさん
2018/09/02(日) 00:12:57.53ID:elP7igYW やっぱり移動先はLinux板にしといたほうが
良かったんじゃねーの?w
良かったんじゃねーの?w
599デフォルトの名無しさん
2018/09/02(日) 00:14:17.23ID:fQwovzZh >>597
>この板をまともな板にするために
wwwww マジでっ!?
その言っているのは、いろいろ自分にも当てはまるだろうと思うんだけどな
自己顕示欲承認欲求と見なされるのは嫌らしいというのだけはわかったよw
>この板をまともな板にするために
wwwww マジでっ!?
その言っているのは、いろいろ自分にも当てはまるだろうと思うんだけどな
自己顕示欲承認欲求と見なされるのは嫌らしいというのだけはわかったよw
600デフォルトの名無しさん
2018/09/02(日) 00:15:05.38ID:Tb3tt8fk 当然、オマエも排除の対象だ
601デフォルトの名無しさん
2018/09/02(日) 00:16:13.74ID:fQwovzZh 「排除」www すげええええっwwww
いや、怖い...w
いや、怖い...w
602デフォルトの名無しさん
2018/09/02(日) 00:16:18.96ID:CFWyulsd >>595
これは yes って返せばいいのか!?
これは yes って返せばいいのか!?
603デフォルトの名無しさん
2018/09/02(日) 00:17:25.68ID:Oiltae2A 俺の目の黒いうちはまともにはさせんから安心しろ
604デフォルトの名無しさん
2018/09/02(日) 00:17:46.37ID:8TU9g+nX お前も駆逐してやる
605デフォルトの名無しさん
2018/09/02(日) 00:24:56.83ID:elP7igYW >>602
yじゃね?
yじゃね?
606デフォルトの名無しさん
2018/09/02(日) 00:27:05.66ID:elP7igYW どうでもいいけど、
yesコマンドって
1. なんに使うんだ?
2. なるほど(使いみちを聞いて)
3. いつ使うんだ?(使ったことがない) ← みんなこの状態だよな?w
yesコマンドって
1. なんに使うんだ?
2. なるほど(使いみちを聞いて)
3. いつ使うんだ?(使ったことがない) ← みんなこの状態だよな?w
607デフォルトの名無しさん
2018/09/02(日) 00:28:33.57ID:fQwovzZh >>606
まったくもって、まんまだなw
まったくもって、まんまだなw
608デフォルトの名無しさん
2018/09/02(日) 00:40:01.27ID:elP7igYW だいたい、-yオプションとか、-fオプションとか、-qオプションがあるからねぇ
おっとまたオプションの話だw
オプションついでにいうとtarとかpsってなんでハイフンなしで
tar czvf とか ps aux とか書くんだろう?
ちょっと調べたら昔の仕様?らしいけど
今はtar -czvf とか ps -aux とかできるみたいだけどさ。
まあ今はハイフンなしオプションのことを考慮する必要は無いだろうけど
それに対応したライブラリ(getoptsみたいなの)ってあるんだろうか?
おっとまたオプションの話だw
オプションついでにいうとtarとかpsってなんでハイフンなしで
tar czvf とか ps aux とか書くんだろう?
ちょっと調べたら昔の仕様?らしいけど
今はtar -czvf とか ps -aux とかできるみたいだけどさ。
まあ今はハイフンなしオプションのことを考慮する必要は無いだろうけど
それに対応したライブラリ(getoptsみたいなの)ってあるんだろうか?
609デフォルトの名無しさん
2018/09/02(日) 02:09:13.86ID:4Jf6YH6e >>608
ないのでは? tar の場合はハイフンなしの Old style のオプション指定されていたら
まずはハイフン付きに置き換えてから解釈しているらしい。
https://qiita.com/junjis0203/items/6bb48184b508045e69da
ないのでは? tar の場合はハイフンなしの Old style のオプション指定されていたら
まずはハイフン付きに置き換えてから解釈しているらしい。
https://qiita.com/junjis0203/items/6bb48184b508045e69da
610デフォルトの名無しさん
2018/09/02(日) 06:17:08.93ID:667Fbrpy611デフォルトの名無しさん
2018/09/02(日) 09:16:59.93ID:elP7igYW >>609
なるほど。
初期(いつ?)の頃ってコマンドの開発どうだったんだろうね
ハイフンなしのオプションはしばしば用いられていたのか?
どんなコマンドも最初の実装ってのは存在するわけで、
それが今とどう同じなのか違うのか少し気になってきた
なるほど。
初期(いつ?)の頃ってコマンドの開発どうだったんだろうね
ハイフンなしのオプションはしばしば用いられていたのか?
どんなコマンドも最初の実装ってのは存在するわけで、
それが今とどう同じなのか違うのか少し気になってきた
612デフォルトの名無しさん
2018/09/03(月) 09:07:41.26ID:Phd/3F0T 俺、数百行クラスになったら静的言語にするから、
シェルスクリプトどころかrubyもpythonも使わない。
数百行にもなると書き捨てって規模じゃないし、
静的型検査なしで書くのは面倒くさい。
あとJavaScriptには現代的言語の持つ抽象化機能があらかたあるから、
連想配列も構造体相当品もないシェルスクリプトと同列に並べるのはJavaScriptに失礼。
シェルスクリプトどころかrubyもpythonも使わない。
数百行にもなると書き捨てって規模じゃないし、
静的型検査なしで書くのは面倒くさい。
あとJavaScriptには現代的言語の持つ抽象化機能があらかたあるから、
連想配列も構造体相当品もないシェルスクリプトと同列に並べるのはJavaScriptに失礼。
613デフォルトの名無しさん
2018/09/03(月) 09:13:23.99ID:Wp4QdYvu シェルスクリプトでcのソースを書くのはちょっと面白い。
614デフォルトの名無しさん
2018/09/03(月) 09:52:05.06ID:WkDP4f9E615デフォルトの名無しさん
2018/09/03(月) 10:26:05.35ID:cQ/Qcp18 >>612
大変やね。たまには数十クラス程度のものを作っても良いんやで
大変やね。たまには数十クラス程度のものを作っても良いんやで
616デフォルトの名無しさん
2018/09/03(月) 11:13:52.71ID:Phd/3F0T >>615
そういう小規模なプログラムばかり書いてたらもっと動的言語を
使ってたかもしれないなあ。
就職して最初のプロジェクトがいきなり100万行オーバーのCプログラムの
大規模改造とかで、それ以後も数十万行クラスのプログラムばかり
触ってきて、ちょっと規模が大きくなると処理系の検査に頼る
習慣がついてしまった。
そういう小規模なプログラムばかり書いてたらもっと動的言語を
使ってたかもしれないなあ。
就職して最初のプロジェクトがいきなり100万行オーバーのCプログラムの
大規模改造とかで、それ以後も数十万行クラスのプログラムばかり
触ってきて、ちょっと規模が大きくなると処理系の検査に頼る
習慣がついてしまった。
617デフォルトの名無しさん
2018/09/03(月) 11:21:30.86ID:IWP2OX+N >>616
うん、仕事でしかプログラミングしてないんだろうな
ってのはすぐにわかったよ。
1から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね
保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
うん、仕事でしかプログラミングしてないんだろうな
ってのはすぐにわかったよ。
1から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね
保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
618デフォルトの名無しさん
2018/09/03(月) 13:56:12.52ID:Phd/3F0T >>617
あれだけの情報で趣味プログラム書いてないってわかるなんてスゴイ⤴⤴
その推理フツーに間違ってるがw
そもそも小さなプログラムだって普通に書いてるし、だからこそシェルスクリプトスレに来てるわけで、
大きなプログラムしか書いてないとするとその時点で矛盾するじゃん。
自己矛盾した推理を前提に話を進めるとか、同僚にいたら困りそうなタイプだなあ。
あれだけの情報で趣味プログラム書いてないってわかるなんてスゴイ⤴⤴
その推理フツーに間違ってるがw
そもそも小さなプログラムだって普通に書いてるし、だからこそシェルスクリプトスレに来てるわけで、
大きなプログラムしか書いてないとするとその時点で矛盾するじゃん。
自己矛盾した推理を前提に話を進めるとか、同僚にいたら困りそうなタイプだなあ。
619デフォルトの名無しさん
2018/09/03(月) 14:47:29.83ID:IWP2OX+N >>618
いや、そもそもお前の発言が矛盾してるんだって。
↓これお前の発言な
> 俺、数百行クラスになったら静的言語にするから、
> シェルスクリプトどころかrubyもpythonも使わない。
数百行クラスになったら静的言語ってことは
数百行クラスになる前はどうしてるんだって話だよ
いや、そもそもお前の発言が矛盾してるんだって。
↓これお前の発言な
> 俺、数百行クラスになったら静的言語にするから、
> シェルスクリプトどころかrubyもpythonも使わない。
数百行クラスになったら静的言語ってことは
数百行クラスになる前はどうしてるんだって話だよ
620デフォルトの名無しさん
2018/09/03(月) 19:06:52.08ID:HxI+JP9z >>619
> 数百行クラスになったら静的言語ってことは
> 数百行クラスになる前はどうしてるんだって話だよ
え、そこに矛盾はまったくないんだけど、マジでホントに分からないの?
明日の19時くらいまで待ってあげるから自分で考えてみた方がいいぜ。
降参すればもっと早く答を教えてあげるけど、こんな当たり前の話、ホントに分からないとするとそれはそれでまずい気がする。
> 数百行クラスになったら静的言語ってことは
> 数百行クラスになる前はどうしてるんだって話だよ
え、そこに矛盾はまったくないんだけど、マジでホントに分からないの?
明日の19時くらいまで待ってあげるから自分で考えてみた方がいいぜ。
降参すればもっと早く答を教えてあげるけど、こんな当たり前の話、ホントに分からないとするとそれはそれでまずい気がする。
621デフォルトの名無しさん
2018/09/03(月) 19:27:06.50ID:HpF+lD7Q おまいら、自分の書き込みが変に解釈された事の方を問題視しろよ。
相手が客だった場合、どんなに釈明しようが上司はお前が悪いとしか言わんぞ。
相手が客だった場合、どんなに釈明しようが上司はお前が悪いとしか言わんぞ。
622デフォルトの名無しさん
2018/09/03(月) 19:33:15.32ID:HxI+JP9z623デフォルトの名無しさん
2018/09/03(月) 20:06:42.29ID:IWP2OX+N 上の方でもプログラマを自称しながら、アマチュアっぽいやつがいたからなぁw
まあ、明日なにか言おうとしてるみたいだから、何も言えなくなるように
大規模アプリを作るときの鉄則を言っておくよ。
まず大規模アプリを作るときに重要なのは細かくモジュールに分けましょうということ
モジュールという言葉の意味は文脈で微妙に異なるけど、きっちり定義したいわけじゃなく
小さなプログラム、小さなファイル、小さなクラス、小さな関数等に分けましょうという話
これをやっておかないと、例えばC言語のHello Worldであっても、
printfの複雑な実装を、一つのファイルに全部書かないといけなくなくなって
数百行なんてあっという間に超えてしまう
>>612は数百行程度で静的言語にするとか言ってるが、
俺に言わせれば、大規模アプリであっても"1モジュール(最小単位の関数)"で
数百行なんてめったになることなんてないだろうと。
まあ、どうせ >>612はプロジェクト全体で数百行と言ったつもりなんだろうが、
お前は単体テストできるようにしてないのかと。それぞれ独立して考えられるように設計しろよ。
小さなモジュールを組み合わせて作るんだから、プロジェクト全体の行数で考えるのは意味ないんだよ。
Hello Worldでもプロジェクト全体という話ならprintfの実装も含めなきゃいけない。
でもブラックボックスとして扱ってるんだろ? それと同じで自分で作る場合もブラックボックス化させればいいんだよ
つまり小さなモジュールに分けて作れば、静的言語でなくとも大規模アプリは十分作れるわけだ。
もちろんシェルスクリプトであってもね
もし「シェルスクリプトは上から下へ流れるように作るのが普通なんだ。
関数なんて作ってはいけない、複数のファイルに分けたりしてはいけない、複数のスクリプトに分けるのも禁止
だから大きなものは作れないんだ!それが世界の常識なんだ!!」という理屈であれば、
それは頭が固いお前の思い込みが、大きな物を作れない根本原因だろ。ってこと
結局プログラマを自称しているようだが、小さく分けるという設計ができない
アマチュアレベルの人間なんだろうって話だ
まあ、明日なにか言おうとしてるみたいだから、何も言えなくなるように
大規模アプリを作るときの鉄則を言っておくよ。
まず大規模アプリを作るときに重要なのは細かくモジュールに分けましょうということ
モジュールという言葉の意味は文脈で微妙に異なるけど、きっちり定義したいわけじゃなく
小さなプログラム、小さなファイル、小さなクラス、小さな関数等に分けましょうという話
これをやっておかないと、例えばC言語のHello Worldであっても、
printfの複雑な実装を、一つのファイルに全部書かないといけなくなくなって
数百行なんてあっという間に超えてしまう
>>612は数百行程度で静的言語にするとか言ってるが、
俺に言わせれば、大規模アプリであっても"1モジュール(最小単位の関数)"で
数百行なんてめったになることなんてないだろうと。
まあ、どうせ >>612はプロジェクト全体で数百行と言ったつもりなんだろうが、
お前は単体テストできるようにしてないのかと。それぞれ独立して考えられるように設計しろよ。
小さなモジュールを組み合わせて作るんだから、プロジェクト全体の行数で考えるのは意味ないんだよ。
Hello Worldでもプロジェクト全体という話ならprintfの実装も含めなきゃいけない。
でもブラックボックスとして扱ってるんだろ? それと同じで自分で作る場合もブラックボックス化させればいいんだよ
つまり小さなモジュールに分けて作れば、静的言語でなくとも大規模アプリは十分作れるわけだ。
もちろんシェルスクリプトであってもね
もし「シェルスクリプトは上から下へ流れるように作るのが普通なんだ。
関数なんて作ってはいけない、複数のファイルに分けたりしてはいけない、複数のスクリプトに分けるのも禁止
だから大きなものは作れないんだ!それが世界の常識なんだ!!」という理屈であれば、
それは頭が固いお前の思い込みが、大きな物を作れない根本原因だろ。ってこと
結局プログラマを自称しているようだが、小さく分けるという設計ができない
アマチュアレベルの人間なんだろうって話だ
624デフォルトの名無しさん
2018/09/03(月) 20:11:02.86ID:lS5Tq6xt 渾身の長文わろたw
625デフォルトの名無しさん
2018/09/03(月) 20:13:45.46ID:IWP2OX+N まあいつものことだなw
626612
2018/09/03(月) 20:30:39.38ID:HxI+JP9z627デフォルトの名無しさん
2018/09/03(月) 20:40:49.84ID:IWP2OX+N >>626
いや、別にお前にレスしてないしw
大規模アプリを作るときの鉄則を言っただけだし
明日の19時過ぎたら、なんか答え書くんだろ?
それを書いてくれればいいよ。
俺の文章読んで恥ずかしくないならね
まあ一つ言うとしたら、技術力の差ってやっぱりあるよな
他の人が動的言語できているという事実があるというのに
俺はできないんだ!ってよく恥ずかしげもなく言えるよなーと
いや、別にお前にレスしてないしw
大規模アプリを作るときの鉄則を言っただけだし
明日の19時過ぎたら、なんか答え書くんだろ?
それを書いてくれればいいよ。
俺の文章読んで恥ずかしくないならね
まあ一つ言うとしたら、技術力の差ってやっぱりあるよな
他の人が動的言語できているという事実があるというのに
俺はできないんだ!ってよく恥ずかしげもなく言えるよなーと
628デフォルトの名無しさん
2018/09/03(月) 20:43:08.65ID:lS5Tq6xt 大規模アプリを作るときの鉄則www
なんやろ?www
なんやろ?www
629デフォルトの名無しさん
2018/09/03(月) 20:43:49.57ID:IWP2OX+N そうだ、ヒントをやろうw
俺、(1関数で)数百行クラスになったら設計が悪い思って作り直すから、
数百行クラスになることはない
俺、(1関数で)数百行クラスになったら設計が悪い思って作り直すから、
数百行クラスになることはない
630デフォルトの名無しさん
2018/09/03(月) 20:45:19.54ID:RephN+2M なんか一つ一つが長文でここ最近ずっとだらっと最下部までスクロールして閉じるを繰り返してるわ
631612
2018/09/03(月) 21:00:52.21ID:HxI+JP9z これはアレですね。
(a)と答えると自分の間違いを認めることになって耐えられないし、
(b)と答えると明日の19時以降に赤っ恥を書くことになるしで、
(a)とも(b)とも答えられないってヤツですねw
分かりやすい。
自分の間違いを認めると死んぢゃう病に罹患中って奴だw
(a)と答えると自分の間違いを認めることになって耐えられないし、
(b)と答えると明日の19時以降に赤っ恥を書くことになるしで、
(a)とも(b)とも答えられないってヤツですねw
分かりやすい。
自分の間違いを認めると死んぢゃう病に罹患中って奴だw
632デフォルトの名無しさん
2018/09/03(月) 21:09:15.31ID:E2St7m4+ 個々の簡単な完結した機能の簡単なシェルにしといたほうが
単体試験仕様書の設計も簡単
結合試験仕様書の設計も簡単
総合試験仕様書の設計も簡単
知恵遅れが作ると試験による検証すらできないシステムができあがる
単体試験仕様書の設計も簡単
結合試験仕様書の設計も簡単
総合試験仕様書の設計も簡単
知恵遅れが作ると試験による検証すらできないシステムができあがる
633デフォルトの名無しさん
2018/09/03(月) 21:12:48.08ID:IWP2OX+N634デフォルトの名無しさん
2018/09/03(月) 21:13:14.86ID:IWP2OX+N635デフォルトの名無しさん
2018/09/03(月) 21:14:05.20ID:ttVcJTrG TypeScript・Haxe の違い
大規模開発なら圧倒的に、Haxe
大規模開発なら圧倒的に、Haxe
636デフォルトの名無しさん
2018/09/03(月) 21:17:55.11ID:lS5Tq6xt637デフォルトの名無しさん
2018/09/03(月) 21:27:46.12ID:zLYH5Np3 すげーなこのスレ。
とうとうrubyガイジも呼び寄せたぞ。
オールスターじゃん
とうとうrubyガイジも呼び寄せたぞ。
オールスターじゃん
638デフォルトの名無しさん
2018/09/03(月) 21:28:01.12ID:IWP2OX+N 作業していて気づいたんだが >>537-538 の
どういう場合にシェルスクリプトが適しているかの話
少し毛色が違うが、コールバックの仕組みを取り入れるなら
必然的にシェルスクリプトで書かなければいけなくなるな
つまり
1. 簡単なことをやるためにシェルスクリプトを使う
2. だけど中身で一部複雑な処理があるので、そこだけ別コマンドを使う
3. その別コマンドから、シェルスクリプトに定義したコールバック関数を呼び出す
というようなことをやろうと思ったが、2の「別コマンド」がシェルスクリプト以外(正確には別プロセス)だと
シェルスクリプトに定義したコールバック関数を呼び出せない
つまりPerlで書くならば以下のような感じで、正規表現置換をsedコマンドで
実行してしまったら、(スクリプトの内部関数である)foo関数を呼び出すことができない
sub foo { uc($_[0]) }
$text = 'abcdefg';
$text =~ s/([a-c])/foo($1)/eg;
print $text;
どういう場合にシェルスクリプトが適しているかの話
少し毛色が違うが、コールバックの仕組みを取り入れるなら
必然的にシェルスクリプトで書かなければいけなくなるな
つまり
1. 簡単なことをやるためにシェルスクリプトを使う
2. だけど中身で一部複雑な処理があるので、そこだけ別コマンドを使う
3. その別コマンドから、シェルスクリプトに定義したコールバック関数を呼び出す
というようなことをやろうと思ったが、2の「別コマンド」がシェルスクリプト以外(正確には別プロセス)だと
シェルスクリプトに定義したコールバック関数を呼び出せない
つまりPerlで書くならば以下のような感じで、正規表現置換をsedコマンドで
実行してしまったら、(スクリプトの内部関数である)foo関数を呼び出すことができない
sub foo { uc($_[0]) }
$text = 'abcdefg';
$text =~ s/([a-c])/foo($1)/eg;
print $text;
639デフォルトの名無しさん
2018/09/03(月) 21:28:41.85ID:RephN+2M さすがの総合スレ
640デフォルトの名無しさん
2018/09/03(月) 21:33:19.27ID:IWP2OX+N どうでもいいが(俺にとってはどうでも良くないが)
sedとawkとgrepとexprで使える正規表現のパターンが違うのって地味に嫌だなw
もし1から仕様を決められるなら、全部統一されるんだろうな。
HTML5みたいに一度足並み揃えた仕様にリセットされてほしい
sedとawkとgrepとexprで使える正規表現のパターンが違うのって地味に嫌だなw
もし1から仕様を決められるなら、全部統一されるんだろうな。
HTML5みたいに一度足並み揃えた仕様にリセットされてほしい
641デフォルトの名無しさん
2018/09/03(月) 21:51:24.51ID:IWP2OX+N sedの非互換性も辛い・・・というかGNUが便利すぎなんだろうな
642デフォルトの名無しさん
2018/09/03(月) 22:05:03.93ID:5Vmu1cpr643デフォルトの名無しさん
2018/09/03(月) 23:01:37.14ID:E2St7m4+ もうコタエは書いたからな
次の患者さんどうぞ
次の患者さんどうぞ
644デフォルトの名無しさん
2018/09/03(月) 23:24:25.75ID:O250GQ8L 誰がどう見ても患者はお前だろ。精神の
645デフォルトの名無しさん
2018/09/03(月) 23:39:11.39ID:YrDXnGw5 >>643も精神のという意味だろう。この読めなさはw
646デフォルトの名無しさん
2018/09/03(月) 23:57:12.64ID:E2St7m4+ キミラは重篤な患者さんだからな
しょうがない
しょうがない
647デフォルトの名無しさん
2018/09/03(月) 23:59:36.46ID:IWP2OX+N sedで「command i expects \ followed by text」というエラーが出たが
なんか-iの話ばっかり見つかって、期待する答えがなかなか見つからないwww
GNUだと
echo text | sed 'i===' って書くだけで簡単に
===
text
と表示されるんだが、
BSDだと上記エラーがでて、しばらくどうすりゃいいの?状態だったw
持ってた sed & awk ポケットリファレンス 眺めても書いてあることがさっぱりでさ
正しく(POSIX)ではこう書かないといけないんだな。改行がいるとかw
echo text | sed 'i\
===
'
これを1行で書くために、改行を変数に入れるべくこんな変なことをしないといけなかったりw
LF=$(printf '\012_')
LF=${LF%_}
sedって置換機能以外の、本来stream editorとしてバリバリ使いこなそうと思ったら難しいな
ホールドスペース使いこなせる気がしない。何ができるのかも想像できないしw
なんか-iの話ばっかり見つかって、期待する答えがなかなか見つからないwww
GNUだと
echo text | sed 'i===' って書くだけで簡単に
===
text
と表示されるんだが、
BSDだと上記エラーがでて、しばらくどうすりゃいいの?状態だったw
持ってた sed & awk ポケットリファレンス 眺めても書いてあることがさっぱりでさ
正しく(POSIX)ではこう書かないといけないんだな。改行がいるとかw
echo text | sed 'i\
===
'
これを1行で書くために、改行を変数に入れるべくこんな変なことをしないといけなかったりw
LF=$(printf '\012_')
LF=${LF%_}
sedって置換機能以外の、本来stream editorとしてバリバリ使いこなそうと思ったら難しいな
ホールドスペース使いこなせる気がしない。何ができるのかも想像できないしw
648デフォルトの名無しさん
2018/09/04(火) 00:05:33.37ID:gZnu4stV ココは隔離病棟の集中治療室
649デフォルトの名無しさん
2018/09/04(火) 01:03:24.22ID:zS1fHlcp 自覚はあるんだな
650デフォルトの名無しさん
2018/09/04(火) 06:08:51.64ID:fH4o5qCk ホールドスペースをバリバリ使ってた。使いこなしてたかはともかく…
20 年以上も前のことだから、もうできない。
20 年以上も前のことだから、もうできない。
651デフォルトの名無しさん
2018/09/04(火) 08:53:12.61ID:jvRjWg/I ホールドスペースやブランチを使いたくなったらsedやめて他の言語使えって、Macで女子高生が話してた。
652デフォルトの名無しさん
2018/09/04(火) 08:53:37.92ID:ROt4XEkp sedがなんで分かりづらいかの理由がわかった
b(とt)の解説が悪いんだよ。
たいてい、b・・・無条件ジャンプのように書いてあるから
これだけでどうやってフロー制御すりゃいいんだよ?ってなる
正確にはこれ、条件分岐なんだな。ニュアンス的にはこんな感じ
/条件/b :label
bの前はアドレスってことだが、正規表現でもアドレス指定できるから
これを条件とすれば、条件分岐となる。
だけどアドレス(条件)はすべてのコマンドで使えるものだからなのか
そのコマンドの説明のところで省いてしまうから、解説だけを読んでも
ジャンプはあるが条件付きジャンプがねーじゃねーかってなるわけだ
条件文があるならあとは簡単だ。普通の手続き型のコードだわ
b(とt)の解説が悪いんだよ。
たいてい、b・・・無条件ジャンプのように書いてあるから
これだけでどうやってフロー制御すりゃいいんだよ?ってなる
正確にはこれ、条件分岐なんだな。ニュアンス的にはこんな感じ
/条件/b :label
bの前はアドレスってことだが、正規表現でもアドレス指定できるから
これを条件とすれば、条件分岐となる。
だけどアドレス(条件)はすべてのコマンドで使えるものだからなのか
そのコマンドの説明のところで省いてしまうから、解説だけを読んでも
ジャンプはあるが条件付きジャンプがねーじゃねーかってなるわけだ
条件文があるならあとは簡単だ。普通の手続き型のコードだわ
653デフォルトの名無しさん
2018/09/04(火) 09:49:28.21ID:+CEwKGA5 "Commands which accept address ranges" って書いてあるやん…
654デフォルトの名無しさん
2018/09/04(火) 10:20:13.70ID:ROt4XEkp655デフォルトの名無しさん
2018/09/04(火) 11:30:26.75ID:+CEwKGA5 >>654
数行上に書いてあるで
数行上に書いてあるで
656デフォルトの名無しさん
2018/09/04(火) 12:17:38.09ID:ROt4XEkp >>655
何度も同じことを言わせないでくれ
何度も同じことを言わせないでくれ
657デフォルトの名無しさん
2018/09/04(火) 13:15:59.22ID:+CEwKGA5 実際には3行上だった
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】2026年北中米W杯の組み合わせが決定! 日本代表はオランダ、チュニジア、欧州プレーオフB勝者と同組で激突★3 [冬月記者★]
- 高市首相が漫画セリフ引用し《いいから黙って全部俺に投資しろ!》 金融会合での“進撃のサナエ”に海外ドン引き [バイト歴50年★]
- 渡邊渚「性を売ってるくせに」批判に反論 幻滅「これが日本の現状だよなー」「『渾身の下着!』というような意味でやってない」★3 [Ailuropoda melanoleuca★]
- 【国際】「日本の軍国主義者を全滅せよ」ロシア、占領地域から連れ去ったウクライナの子どもを「再教育」 [ぐれ★]
- 【鮭】20代女性の車のドアノブに体液、不同意わいせつ未遂の容疑で広島市安佐北区の30歳無職男を逮捕 [nita★]
- 鈴木農相、地元JAから借入金 おこめ券巡り利害誘導との批判も★2 [安倍聖帝★]
- 【NHK他】FIFAワールドカップ2026 はじまらない組み合わせ抽選★4
- 競輪実況★1620
- とらせんIP ★2
- ハム専 サヨナラ石井
- こいせん 全レス転載禁止
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap611
- 【悲報】派遣のおっさんと滋賀に行ったら『めんたいパーク』に行きたいって言い出してドン引きした…滋賀みたいな海無し県で明太子って… [483447288]
- 3 人 寄 ら ば
- みたらし団子嫌い
- 海外の識者「日銀は日本が破綻するかどうかを決めているのではない。彼らは“いつ破綻するか”を決めている」 [268718286]
- 食材となるものはな、罪があったから食材にされるんだよ
- 【高市悲報】プリキュア「いま私たちは環境問題に関心があるの」 プリオタ「ギェェェェェ思想が強すぎる!!」大炎上🔥 [762037879]
