シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/)
シェルスクリプト総合 その28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/07/24(火) 11:01:16.36ID:r0TJj2hB518デフォルトの名無しさん
2018/09/01(土) 08:31:44.88ID:Z9gelboG ・テスト環境……なし
・ドキュメント生成……なし
・バージョン管理……なし
・パッケージシステム……なし
まあそりゃ大規模開発には向かないわな。
やってもいいのは上記の諸々を自作できるような賢い人間。
(俺を含めた)普通の人間は「連番画像をDLする」とか「写真フォルダを整理する」
ときに一度限りのシェルスクリプトを書く程度に留めて
開発はPythonやRubyやJava(個人的に後者二つはあまり好きじゃないが)を利用するのが一番いい。
もちろん自身にとってもだが,他人にとっても不具合が少ないし事故が起こりにくいというのは大きな利点でしょうね。
・ドキュメント生成……なし
・バージョン管理……なし
・パッケージシステム……なし
まあそりゃ大規模開発には向かないわな。
やってもいいのは上記の諸々を自作できるような賢い人間。
(俺を含めた)普通の人間は「連番画像をDLする」とか「写真フォルダを整理する」
ときに一度限りのシェルスクリプトを書く程度に留めて
開発はPythonやRubyやJava(個人的に後者二つはあまり好きじゃないが)を利用するのが一番いい。
もちろん自身にとってもだが,他人にとっても不具合が少ないし事故が起こりにくいというのは大きな利点でしょうね。
519デフォルトの名無しさん
2018/09/01(土) 08:38:18.84ID:mPcVbgud520デフォルトの名無しさん
2018/09/01(土) 08:45:05.20ID:mPcVbgud >>518
それ理屈にあってないだろ
"作れない" ならともかく、現在ないから大規模開発に向かないという理屈なら、
あれば大規模開発に向いているって言うことになるぞw
例えば、今はsystemdに役目を移してしまったが、
Linuxの起動の仕組みはシェルスクリプトだった。
ちなみにgitも結構シェルスクリプトが含まれているよ
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh
それにテストもドキュメントもバージョン管理もあるね。
(って今気づいたがバージョン管理ってなんだ?)
それ理屈にあってないだろ
"作れない" ならともかく、現在ないから大規模開発に向かないという理屈なら、
あれば大規模開発に向いているって言うことになるぞw
例えば、今はsystemdに役目を移してしまったが、
Linuxの起動の仕組みはシェルスクリプトだった。
ちなみにgitも結構シェルスクリプトが含まれているよ
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh
それにテストもドキュメントもバージョン管理もあるね。
(って今気づいたがバージョン管理ってなんだ?)
521デフォルトの名無しさん
2018/09/01(土) 08:48:34.52ID:mPcVbgud なんか、JavaScriptと同じ空気を感じるな。
いろんな仕組みがないから、簡易的な用途にしか使えないと
最初は思われていたが、それらの仕組みが揃った今では
サイト全体をJavaScriptで作るのもありえないことではなくなった。
いろんな仕組みがないから、簡易的な用途にしか使えないと
最初は思われていたが、それらの仕組みが揃った今では
サイト全体をJavaScriptで作るのもありえないことではなくなった。
522デフォルトの名無しさん
2018/09/01(土) 08:50:14.95ID:dtHP3qHu523デフォルトの名無しさん
2018/09/01(土) 08:53:58.50ID:mPcVbgud >>522
だから規模で判断するのは間違いという結論になると言ってるんだが?
だから規模で判断するのは間違いという結論になると言ってるんだが?
524デフォルトの名無しさん
2018/09/01(土) 08:56:54.80ID:J8s4Euww >>513
具体的にはどういう場合?
具体的にはどういう場合?
525デフォルトの名無しさん
2018/09/01(土) 09:00:31.35ID:mPcVbgud >>524
だからrbenvっていってるじゃん。
だからrbenvっていってるじゃん。
526デフォルトの名無しさん
2018/09/01(土) 09:01:03.88ID:J8s4Euww >>525
具体的に
具体的に
527デフォルトの名無しさん
2018/09/01(土) 09:03:56.67ID:dtHP3qHu >>523>>525
それは例外であって反例ではない
それは例外であって反例ではない
528デフォルトの名無しさん
2018/09/01(土) 09:07:50.87ID:kUpkBQ3x 仮想化は、典型的な手順書だろ。
パッケージをダウンロードして、インストールして、環境変数PATH を通して
シェルスクリプトで作るのは面倒。
Ruby でOK
パッケージをダウンロードして、インストールして、環境変数PATH を通して
シェルスクリプトで作るのは面倒。
Ruby でOK
529デフォルトの名無しさん
2018/09/01(土) 09:16:02.22ID:Z9gelboG まあRubyじゃなくてもRubyのように
ドキュメント生成やパッケージ管理ができればいいんだよね
PythonがいいよPythonが。
ドキュメント生成やパッケージ管理ができればいいんだよね
PythonがいいよPythonが。
530デフォルトの名無しさん
2018/09/01(土) 09:23:11.21ID:mPcVbgud531デフォルトの名無しさん
2018/09/01(土) 09:24:47.95ID:HRxiLrgz pwshが便利すぎてな
532デフォルトの名無しさん
2018/09/01(土) 09:25:44.74ID:mPcVbgud >>528
> 仮想化は、典型的な手順書だろ。
たまたま手順書がシェルスクリプトで書かれていたからって、
手順書だからというのはシェルスクリプトで書く理由にはならないんだよ。
あんたはrubyが入ってない、入れたくないという環境でも
動かしたいという理由とごっちゃにしてるだけ
> 仮想化は、典型的な手順書だろ。
たまたま手順書がシェルスクリプトで書かれていたからって、
手順書だからというのはシェルスクリプトで書く理由にはならないんだよ。
あんたはrubyが入ってない、入れたくないという環境でも
動かしたいという理由とごっちゃにしてるだけ
533デフォルトの名無しさん
2018/09/01(土) 09:37:39.89ID:dtHP3qHu >>530
分かった、好きにしてくれ
分かった、好きにしてくれ
534デフォルトの名無しさん
2018/09/01(土) 09:45:09.27ID:mPcVbgud 理解したならいい。
好きにするのは普通にしている。
ここでやってるのは、お前に理解させることだからな。
反論がなくなればそこで終了だ
好きにするのは普通にしている。
ここでやってるのは、お前に理解させることだからな。
反論がなくなればそこで終了だ
535デフォルトの名無しさん
2018/09/01(土) 10:52:03.88ID:f+i9u0Am >>531
Unix に新しいシェルが!? と思ったら PowerShell だったのね
Unix に新しいシェルが!? と思ったら PowerShell だったのね
536デフォルトの名無しさん
2018/09/01(土) 11:17:42.65ID:qlVPfHnQ 結局どういう場合にシェルが適しているのか一言も言ってない件
537デフォルトの名無しさん
2018/09/01(土) 11:35:25.52ID:mPcVbgud >>526
1. シェル環境そのものをカスタマイズするためのもの(例 rbenv)
通常のプロセスはサブプロセスとして起動するので、カレントシェルのカスタマイズはできない
2. 特定の言語のライブラリやランタイムに依存したくないもの(例 Docker)
あらかじめ入っているものだけで起動できるので、環境を整える必要がなくなる
コンテナやIoTといった小さな制限されたイメージでも使える
逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
例えばRubyで作ったものはPythonで作ることだってできるだろ?
1. シェル環境そのものをカスタマイズするためのもの(例 rbenv)
通常のプロセスはサブプロセスとして起動するので、カレントシェルのカスタマイズはできない
2. 特定の言語のライブラリやランタイムに依存したくないもの(例 Docker)
あらかじめ入っているものだけで起動できるので、環境を整える必要がなくなる
コンテナやIoTといった小さな制限されたイメージでも使える
逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
例えばRubyで作ったものはPythonで作ることだってできるだろ?
538デフォルトの名無しさん
2018/09/01(土) 11:42:20.50ID:mPcVbgud 3. CLIコマンドとCLIコマンドのグルー言語
リダイレクトやパイプを使った処理はシェルスクリプトが得意
他の言語でもネイティブに記述するのが面倒だからか
内部的にシェルを経由してたりするしな
リダイレクトやパイプを使った処理はシェルスクリプトが得意
他の言語でもネイティブに記述するのが面倒だからか
内部的にシェルを経由してたりするしな
539デフォルトの名無しさん
2018/09/01(土) 11:48:25.44ID:qlVPfHnQ540デフォルトの名無しさん
2018/09/01(土) 11:55:22.51ID:mPcVbgud >>539
はぁ、だから
> 逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
> 例えばRubyで作ったものはPythonで作ることだってできるだろ?
こう書いたのに。
たとえ対象となるものが少なくとも、
適している理由があるだろ?
他の言語は、その適してる理由すらないのにって話だよ
2がC#ですら可能? じゃあ俺が使ってるルータ(OpenWrt)で動かしてみなよ
はぁ、だから
> 逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
> 例えばRubyで作ったものはPythonで作ることだってできるだろ?
こう書いたのに。
たとえ対象となるものが少なくとも、
適している理由があるだろ?
他の言語は、その適してる理由すらないのにって話だよ
2がC#ですら可能? じゃあ俺が使ってるルータ(OpenWrt)で動かしてみなよ
541デフォルトの名無しさん
2018/09/01(土) 11:57:50.49ID:mPcVbgud 参考までに言っておくと、俺が扱ってるルータは
比較的スペックが高いものだが、Flashのサイズは16MBしかなく
ファームウェアを除いたら空き容量は10MB程度だからな
比較的スペックが高いものだが、Flashのサイズは16MBしかなく
ファームウェアを除いたら空き容量は10MB程度だからな
542デフォルトの名無しさん
2018/09/01(土) 12:11:14.41ID:HRxiLrgz 自分が今使ってる環境を前提にして
同じように考えろと周りにも要求する人ってたまにいるけどその議論に意味あるのか?
同じように考えろと周りにも要求する人ってたまにいるけどその議論に意味あるのか?
543デフォルトの名無しさん
2018/09/01(土) 12:23:32.27ID:mPcVbgud544デフォルトの名無しさん
2018/09/01(土) 12:35:03.95ID:HRxiLrgz >>543
だからって極貧環境を前提にするのも間違い
極貧環境でリッチなスクリプトが動かないのはわかった
その環境ではshは素晴らしいものだ
スクリプト言語の完全敗北だよ
そりゃ動かせないのに勝負になるわけない
この結論に議論の余地はないだろう
じゃあ議論が終わったので次に行こう
業務規約でツールインストール禁止のWindows 7環境でshのメリットはあるか?
だからって極貧環境を前提にするのも間違い
極貧環境でリッチなスクリプトが動かないのはわかった
その環境ではshは素晴らしいものだ
スクリプト言語の完全敗北だよ
そりゃ動かせないのに勝負になるわけない
この結論に議論の余地はないだろう
じゃあ議論が終わったので次に行こう
業務規約でツールインストール禁止のWindows 7環境でshのメリットはあるか?
545デフォルトの名無しさん
2018/09/01(土) 12:36:44.49ID:mPcVbgud546デフォルトの名無しさん
2018/09/01(土) 12:38:38.54ID:dtHP3qHu547デフォルトの名無しさん
2018/09/01(土) 12:43:20.26ID:mPcVbgud >>544
> 業務規約でツールインストール禁止のWindows 7環境でshのメリットはあるか?
WindowsとLinuxの両方で使うなら、
両方のOSでそのまま動くツールがほしいね
まずツールインストール禁止なんだから
任意のバイナリ、RubyやPythonをインストールすることは禁止だ。
(バイナリOKならbusyboxでもダウンロードすればいいということになる)
だからバッチファイル or PowerShell or JavaScript(JScript) と
シェルスクリプト の二段構えにするしか無いだろう。
二重にコードを開発するのが嫌なら、簡易インタプリタ言語でも作って、
WindowsではJavaScrptで、Linuxならシェルスクリプトで
パースしてコマンドに変換して実行とかかな
ってことで、シェルスクリプトでもそういう用途のために
ライブラリとか充実してるといいよねという話に戻すw
> 業務規約でツールインストール禁止のWindows 7環境でshのメリットはあるか?
WindowsとLinuxの両方で使うなら、
両方のOSでそのまま動くツールがほしいね
まずツールインストール禁止なんだから
任意のバイナリ、RubyやPythonをインストールすることは禁止だ。
(バイナリOKならbusyboxでもダウンロードすればいいということになる)
だからバッチファイル or PowerShell or JavaScript(JScript) と
シェルスクリプト の二段構えにするしか無いだろう。
二重にコードを開発するのが嫌なら、簡易インタプリタ言語でも作って、
WindowsではJavaScrptで、Linuxならシェルスクリプトで
パースしてコマンドに変換して実行とかかな
ってことで、シェルスクリプトでもそういう用途のために
ライブラリとか充実してるといいよねという話に戻すw
548デフォルトの名無しさん
2018/09/01(土) 12:46:29.79ID:mPcVbgud 皮肉が伝わっていなそうだから言っておくが、>545は
「どちらもなにかを前提としてる」だろってこと
そして2つの違いはその前提が
「多くの環境に対応する」前提 なのか
「特定の環境を切り捨てる」前提なのかってこと
「どちらもなにかを前提としてる」だろってこと
そして2つの違いはその前提が
「多くの環境に対応する」前提 なのか
「特定の環境を切り捨てる」前提なのかってこと
549デフォルトの名無しさん
2018/09/01(土) 13:52:25.73ID:Z9gelboG 結局シェルスクリプトは大規模開発に向いてるの?
550デフォルトの名無しさん
2018/09/01(土) 13:52:43.19ID:7zKoqoPj 最近知ったけど&&や||使えばifによる判定不要なんだね
ls aaa && echo exists
ls aaa || echo not exists
でもプログラムやってきてた自分としては
if使っちゃうかなあ・・・
ls aaa && echo exists
ls aaa || echo not exists
でもプログラムやってきてた自分としては
if使っちゃうかなあ・・・
551デフォルトの名無しさん
2018/09/01(土) 14:21:11.49ID:mPcVbgud > でもプログラムやってきてた自分としては
???
俺もプログラムやってきたが、こういう書き方を知った(意識した)のはperlが最初だな
http://perldoc.jp/func/die
> chdir '/usr/spool/news' or die "Can't cd to spool: $!\n"
(or は優先順位が違うだけで || と同じ)
以降Rubyや
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#or
> demo || die
> demo or die
JavaScriptでも使うようになった
https://stackoverflow.com/questions/51206667/or-in-ternary-operator-using
> (a === 0 || b === 0) && console.log('aloha amigo')
(Perlよりも前にやっていた)C言語でもできたんだが、当時は使ってなかったな。
https://qiita.com/gyu-don/items/a0aed0f94b8b35c43290
> a || error(); // if(!a){ error(); } のような挙動
> a || (a = 1); // if(!a){ a = 1; } のような挙動(代入が式である言語で有効)
こういう書き方ができないのはVBぐらいじゃないか?
VBは短絡評価じゃないから、先に|| や && の右側が評価されてしまったはず
えーと、いつから自分がプログラムやってきたと錯覚していた?
???
俺もプログラムやってきたが、こういう書き方を知った(意識した)のはperlが最初だな
http://perldoc.jp/func/die
> chdir '/usr/spool/news' or die "Can't cd to spool: $!\n"
(or は優先順位が違うだけで || と同じ)
以降Rubyや
https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html#or
> demo || die
> demo or die
JavaScriptでも使うようになった
https://stackoverflow.com/questions/51206667/or-in-ternary-operator-using
> (a === 0 || b === 0) && console.log('aloha amigo')
(Perlよりも前にやっていた)C言語でもできたんだが、当時は使ってなかったな。
https://qiita.com/gyu-don/items/a0aed0f94b8b35c43290
> a || error(); // if(!a){ error(); } のような挙動
> a || (a = 1); // if(!a){ a = 1; } のような挙動(代入が式である言語で有効)
こういう書き方ができないのはVBぐらいじゃないか?
VBは短絡評価じゃないから、先に|| や && の右側が評価されてしまったはず
えーと、いつから自分がプログラムやってきたと錯覚していた?
552デフォルトの名無しさん
2018/09/01(土) 14:44:03.83ID:2NCbxz5b 独り舞台の全レス
553デフォルトの名無しさん
2018/09/01(土) 14:46:14.88ID:mPcVbgud あ、はい
(下らないレスは無視してるけどなw)
(下らないレスは無視してるけどなw)
554デフォルトの名無しさん
2018/09/01(土) 15:07:44.71ID:7KL6nh8i 一日中張り付いてるやべー奴
555デフォルトの名無しさん
2018/09/01(土) 16:10:37.86ID:W/mc6eBq556デフォルトの名無しさん
2018/09/01(土) 17:14:12.00ID:mPcVbgud557デフォルトの名無しさん
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から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね
保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】2026年北中米W杯の組み合わせが決定! 日本代表はオランダ、チュニジア、欧州プレーオフB勝者と同組で激突★2 [久太郎★]
- 渡邊渚「性を売ってるくせに」批判に反論 幻滅「これが日本の現状だよなー」「『渾身の下着!』というような意味でやってない」★2 [Ailuropoda melanoleuca★]
- 渡邊渚さん脅迫か 写真集に包丁置く写真投稿 30代女性書類送検 渡邊さん「外に出るのも怖く身の危険を感じる」 [ひかり★]
- 鈴木農相、地元JAから借入金 おこめ券巡り利害誘導との批判も★2 [安倍聖帝★]
- トランプ米大統領、「台湾保証実行法案」に署名 法案提出議員「支配しようとする中国に我々が断固として立ち向かう」 ★3 [お断り★]
- 米国、ホワイトカラーよりブルーカラーが重視される社会になってしまう、AIの影響で25年大卒者は就職難に直面 ★2 [お断り★]
