シェルスクリプト総合 その28

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/24(火) 11:01:16.36ID:r0TJj2hB
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/
2018/09/01(土) 08:31:44.88ID:Z9gelboG
・テスト環境……なし
・ドキュメント生成……なし
・バージョン管理……なし
・パッケージシステム……なし
まあそりゃ大規模開発には向かないわな。
やってもいいのは上記の諸々を自作できるような賢い人間。
(俺を含めた)普通の人間は「連番画像をDLする」とか「写真フォルダを整理する」
ときに一度限りのシェルスクリプトを書く程度に留めて
開発はPythonやRubyやJava(個人的に後者二つはあまり好きじゃないが)を利用するのが一番いい。
もちろん自身にとってもだが,他人にとっても不具合が少ないし事故が起こりにくいというのは大きな利点でしょうね。
2018/09/01(土) 08:38:18.84ID:mPcVbgud
>>517
シェルに関係ないツールなのだから当たり前では?

手順書がいつシェルに適していると?
rbenvは手順書じゃないよ
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

それにテストもドキュメントもバージョン管理もあるね。
(って今気づいたがバージョン管理ってなんだ?)
2018/09/01(土) 08:48:34.52ID:mPcVbgud
なんか、JavaScriptと同じ空気を感じるな。
いろんな仕組みがないから、簡易的な用途にしか使えないと
最初は思われていたが、それらの仕組みが揃った今では
サイト全体をJavaScriptで作るのもありえないことではなくなった。
2018/09/01(土) 08:50:14.95ID:dtHP3qHu
>>515
前提条件なしのインストーラーみたいな選択肢が他に挙がらないパターンは違うだろ

適してるかどうかで考えるってのは誰も否定せんわ
篩や目安として考えるのが規模だって話だろ
2018/09/01(土) 08:53:58.50ID:mPcVbgud
>>522
だから規模で判断するのは間違いという結論になると言ってるんだが?
2018/09/01(土) 08:56:54.80ID:J8s4Euww
>>513
具体的にはどういう場合?
2018/09/01(土) 09:00:31.35ID:mPcVbgud
>>524
だからrbenvっていってるじゃん。
2018/09/01(土) 09:01:03.88ID:J8s4Euww
>>525
具体的に
2018/09/01(土) 09:03:56.67ID:dtHP3qHu
>>523>>525
それは例外であって反例ではない
2018/09/01(土) 09:07:50.87ID:kUpkBQ3x
仮想化は、典型的な手順書だろ。
パッケージをダウンロードして、インストールして、環境変数PATH を通して

シェルスクリプトで作るのは面倒。
Ruby でOK
2018/09/01(土) 09:16:02.22ID:Z9gelboG
まあRubyじゃなくてもRubyのように
ドキュメント生成やパッケージ管理ができればいいんだよね
PythonがいいよPythonが。
2018/09/01(土) 09:23:11.21ID:mPcVbgud
>>527
え?今求められてる「例」は
「シェルスクリプトが適している物」でしょ?

いつの間に質問が「シェルスクリプトが適さない物」にすり替わって、
rbenvを「例外」としてだしたと思ったの?
2018/09/01(土) 09:24:47.95ID:HRxiLrgz
pwshが便利すぎてな
2018/09/01(土) 09:25:44.74ID:mPcVbgud
>>528
> 仮想化は、典型的な手順書だろ。

たまたま手順書がシェルスクリプトで書かれていたからって、
手順書だからというのはシェルスクリプトで書く理由にはならないんだよ。

あんたはrubyが入ってない、入れたくないという環境でも
動かしたいという理由とごっちゃにしてるだけ
2018/09/01(土) 09:37:39.89ID:dtHP3qHu
>>530
分かった、好きにしてくれ
2018/09/01(土) 09:45:09.27ID:mPcVbgud
理解したならいい。
好きにするのは普通にしている。
ここでやってるのは、お前に理解させることだからな。
反論がなくなればそこで終了だ
2018/09/01(土) 10:52:03.88ID:f+i9u0Am
>>531
Unix に新しいシェルが!? と思ったら PowerShell だったのね
2018/09/01(土) 11:17:42.65ID:qlVPfHnQ
結局どういう場合にシェルが適しているのか一言も言ってない件
2018/09/01(土) 11:35:25.52ID:mPcVbgud
>>526
1. シェル環境そのものをカスタマイズするためのもの(例 rbenv)
通常のプロセスはサブプロセスとして起動するので、カレントシェルのカスタマイズはできない

2. 特定の言語のライブラリやランタイムに依存したくないもの(例 Docker)
あらかじめ入っているものだけで起動できるので、環境を整える必要がなくなる
コンテナやIoTといった小さな制限されたイメージでも使える


逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
例えばRubyで作ったものはPythonで作ることだってできるだろ?
2018/09/01(土) 11:42:20.50ID:mPcVbgud
3. CLIコマンドとCLIコマンドのグルー言語
リダイレクトやパイプを使った処理はシェルスクリプトが得意
他の言語でもネイティブに記述するのが面倒だからか
内部的にシェルを経由してたりするしな
2018/09/01(土) 11:48:25.44ID:qlVPfHnQ
>>537
1はそもそも対象となるものが少ない
2は例えばC#ですら可能
2018/09/01(土) 11:55:22.51ID:mPcVbgud
>>539
はぁ、だから

> 逆にさ、他の言語の方こそ「適している理由」が少ないと思うな。
> 例えばRubyで作ったものはPythonで作ることだってできるだろ?

こう書いたのに。

たとえ対象となるものが少なくとも、
適している理由があるだろ?
他の言語は、その適してる理由すらないのにって話だよ

2がC#ですら可能? じゃあ俺が使ってるルータ(OpenWrt)で動かしてみなよ
2018/09/01(土) 11:57:50.49ID:mPcVbgud
参考までに言っておくと、俺が扱ってるルータは
比較的スペックが高いものだが、Flashのサイズは16MBしかなく
ファームウェアを除いたら空き容量は10MB程度だからな
2018/09/01(土) 12:11:14.41ID:HRxiLrgz
自分が今使ってる環境を前提にして
同じように考えろと周りにも要求する人ってたまにいるけどその議論に意味あるのか?
2018/09/01(土) 12:23:32.27ID:mPcVbgud
>>542
意味ないだろうね。

だから sh しか入ってない、入れられない
環境っていうのも考慮しろ。

贅沢な環境を前提とするのは
大間違いだって言ってる。
2018/09/01(土) 12:35:03.95ID:HRxiLrgz
>>543
だからって極貧環境を前提にするのも間違い

極貧環境でリッチなスクリプトが動かないのはわかった
その環境ではshは素晴らしいものだ
スクリプト言語の完全敗北だよ
そりゃ動かせないのに勝負になるわけない
この結論に議論の余地はないだろう

じゃあ議論が終わったので次に行こう
業務規約でツールインストール禁止のWindows 7環境でshのメリットはあるか?
2018/09/01(土) 12:36:44.49ID:mPcVbgud
>>544
はぁ。前提としてねーだろ
そういう環境もあると言ってるだけなのに、

「無視するのが前提」で話をしてるのは
お前なんだよ

これからは「考慮するという前提」でいくからなw
2018/09/01(土) 12:38:38.54ID:dtHP3qHu
>>542
意味ないね

そもそも根本的に考えてることは同じハズなんだが、イメージ対象が違ったりアスペみたく妙なとこ拘り始めると話が拗れる
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
2018/09/01(土) 12:46:29.79ID:mPcVbgud
皮肉が伝わっていなそうだから言っておくが、>545は
「どちらもなにかを前提としてる」だろってこと

そして2つの違いはその前提が
「多くの環境に対応する」前提 なのか
「特定の環境を切り捨てる」前提なのかってこと
2018/09/01(土) 13:52:25.73ID:Z9gelboG
結局シェルスクリプトは大規模開発に向いてるの?
2018/09/01(土) 13:52:43.19ID:7zKoqoPj
最近知ったけど&&や||使えばifによる判定不要なんだね

ls aaa && echo exists
ls aaa || echo not exists

でもプログラムやってきてた自分としては
if使っちゃうかなあ・・・
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は短絡評価じゃないから、先に|| や && の右側が評価されてしまったはず


えーと、いつから自分がプログラムやってきたと錯覚していた?
2018/09/01(土) 14:44:03.83ID:2NCbxz5b
独り舞台の全レス
2018/09/01(土) 14:46:14.88ID:mPcVbgud
あ、はい
(下らないレスは無視してるけどなw)
2018/09/01(土) 15:07:44.71ID:7KL6nh8i
一日中張り付いてるやべー奴
2018/09/01(土) 16:10:37.86ID:W/mc6eBq
>>516
> 1, 2, (3, 6,) 4, 5 のようなページの並びになるのかな?
重複排除以外ならない。
アプリからそれを書き込もうとすると
write(fd, buf/*3, 6, 4, 5*/, size)
を実行するしかない。

>>549
向いていない。
2018/09/01(土) 17:14:12.00ID:mPcVbgud
>>555
> 向いていない。
理由もお願いします。
解決可能な理由だと意味ないですから
2018/09/01(土) 17:30:46.73ID:qlVPfHnQ
>>540
https://github.com/dotnet/core/issues/1165
2018/09/01(土) 17:43:01.15ID:vZp6TokW
何行以上なら大規模なのか、1人で開発したら大規模と言えるのか。
シェルスクリプト環境自体がシェルスクリプトを用いた大規模分散開発の成果と言えるのかもしれない。


という夢を見た
2018/09/01(土) 17:46:41.85ID:mPcVbgud
>>557
ありがとう。やっぱりうちのOpenWrtでは動きそうもないね。
2018/09/01(土) 17:47:16.28ID:qlVPfHnQ
>>559
なぜ?
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"も"搭載されているが、どれくらいメモリ食うんだろうね
2018/09/01(土) 18:00:20.51ID:mPcVbgud
訂正
× おまけでARMのコアバイナリサイズ。圧縮状態で30MB近くある
○ おまけでARM版の.NET Coreランタイムのバイナリサイズ。圧縮状態で30MB近くある
2018/09/01(土) 18:02:43.20ID:7GOU6dDm
ちょっと理解に苦しむんだが、ルーターで大規模開発するわけ?
564デフォルトの名無しさん
垢版 |
2018/09/01(土) 18:02:59.63ID:/wwW4VSs
ちっちゃいコマンドを一杯つくって
そのコマンドを一杯組み合わせてどんどんコマンド作るのには最適
標準入出力でひたすら組み合わせて使えるのがベストだ

一つのシェルスクリプトでたくさんの機能の処理を書こうというのが
そもそもの間違い

単体のシェルスクリプトで完結して使える簡単な機能を作る

わかりましたか
2018/09/01(土) 18:08:41.62ID:mPcVbgud
>>563
俺も理解に苦しむな。

だれがルータで大規模開発するなんて言ったんだ?
2018/09/01(土) 18:10:57.55ID:7GOU6dDm
>>561
じゃあmonoで良いやん
2018/09/01(土) 18:14:25.88ID:eduRMzlf
シェルしか書けないジジイが必死だな
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
2018/09/01(土) 18:23:56.55ID:+0pKcVMh
理論とか言い出しちゃった
2018/09/01(土) 18:38:06.88ID:+0pKcVMh
誰が提唱した理論だろう?
謎理論?
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
(適してないとは思うが)足りない部分を補えば大規模開発だってできることは証明済みだよ

まとめると、現在のシェルスクリプトが大規模開発に向いてないのは
フレームワークやライブラリが不足しているから。
俺がシェルスクリプトで大規模開発をやらないのは、
シェルスクリプトが適した内容で大規模なものを思いつかないから。
それはそれとして中規模を小規模にするためのフレームワークやライブラリは欲しい。
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
たとえばなこのスレにいるような
コマンド叩ける程度の知能しかないオペレーターみたいなヤツが
シェルスクリプトだったらいっぱい自動でコマンド叩けると
必死に主張してるワケ
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/ の方が優れてるな
2018/09/01(土) 18:59:35.38ID:mPcVbgud
>>574
「コマンドをいっぱい叩ける」というのは量の話。
「適した用途」というのは量(大規模か否か)ではなくて
>>537-538に書いたような、処理の内容の話

いい加減、量にこだわるの止めません?w
577デフォルトの名無しさん
垢版 |
2018/09/01(土) 19:05:44.41ID:/wwW4VSs
シェルスクリプトでじかに文字列の処理なんかしないからな
sedやawkを使っても
頭が致命的に悪いとコレもシェルスクリプトで書いてやりたいとなるわけか

なるほどな
2018/09/01(土) 19:08:19.43ID:jmAsDv6y
なんの話してたんだっけ?
2018/09/01(土) 19:09:38.27ID:mPcVbgud
サマータイムスレにもいた半角使いのキチガイ野郎かな?
みんな、こいつの味方するの?w
2018/09/01(土) 19:10:41.10ID:mPcVbgud
>>578
オプション(引数)解析の話を
ずーっと続けてますよw
2018/09/01(土) 19:17:26.68ID:HKyHRnHf
>>568
その理論について詳しく教えてくれw
2018/09/01(土) 19:20:00.37ID:mPcVbgud
>>581
>>553
2018/09/01(土) 19:22:31.10ID:4jvmXnIZ
ム版来たせいで、ム版名物の半角君も長文君も呼び寄せちゃったか…
2018/09/01(土) 19:25:33.74ID:HKyHRnHf
>>568
理論って何?www
理論って言葉使いたくなっちゃったのかな?www
2018/09/01(土) 19:27:13.01ID:mPcVbgud
>>583
その「長文君」がム板に来る流れを作った張本人という可能性は考えないのかい?w
2018/09/01(土) 19:54:56.43ID:HKyHRnHf
>>568
理論ってどんな理論なんだろう?www
プークスクスwww
2018/09/01(土) 19:55:19.76ID:4jvmXnIZ
嫌われ者の長文君ち〜ッス
2018/09/01(土) 21:04:14.49ID:2NCbxz5b
>>583,587
その二人ともなぜか 俺だけ 優秀と思っている不思議さwだから嫌われ者同士でも互いに嫌ってるのかww
589デフォルトの名無しさん
垢版 |
2018/09/01(土) 22:34:21.93ID:/wwW4VSs
オレが優秀なワケじゃない
オマエが健常者じゃないだけだからな

まずそこを自覚しないといけない

そこを勘違いしたらダメなワケ
オツムに軽度の障害があるとみなせるぐらい知能に問題がある
2018/09/01(土) 22:59:24.12ID:2NCbxz5b
別にそういう個別特定なのはいいのねん
お前には俺(のレス)がそう見えるというのはお前の価値観からそう見えるのはしょうがない
だがしかし、お前の場合はレス個別に対してじゃないのもあるからな。不特定多数のも。自称健常者は敵が多いからなのか??w
2018/09/01(土) 23:12:57.65ID:2NCbxz5b
wwww いや、笑った。すげえなww
低学歴 知恵遅れ 健常者じゃない と、どこのスレでもどのレスでもそういう言葉があるな。すごいなww
ちょっと頭のおかしな人が道中をぶつくさ他人に悪態ついてるのと似てると思うけどなあ。「健常者」なんて普通使わないと思うけど、もしかしたらマジ病気のひと?ww
普通に会話、普通のレスできないの?あったとしたらすまん、あまりにもあういうのばかりで見逃したかもw
592デフォルトの名無しさん
垢版 |
2018/09/01(土) 23:17:02.98ID:/wwW4VSs
オレと会話したいの?

残念なことにな、知恵遅れとまともな人間のあいだでは
会話が成立しない

プロトコルが違う

オレと会話したいなら
まず相応のプロトコルを身につけてからだ
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
2018/09/01(土) 23:18:54.31ID:J8s4Euww
長文はキチガイ
2018/09/01(土) 23:41:04.17ID:Z9gelboG
yesコマンドってPOSIXユーティリティじゃないのか……。
2018/09/01(土) 23:46:09.11ID:2NCbxz5b
>>592
会話のためじゃなかった、なんの為に数々のレスしているの?君は
まあ、自己顕示欲承認欲求からだけだろうなというのは、数々のレスからは垣間見えるけど、そういうことなのね、そういうことでいいのねw
597デフォルトの名無しさん
垢版 |
2018/09/02(日) 00:04:43.96ID:Tb3tt8fk
この板をまともな板にするために
この板でレスしてる

オマエみたいな頭悪い低学歴知恵遅れが幅きかせて
いま、この板は正常に機能してない

低学歴知恵遅れは低学歴知恵遅れの自覚がない
しかも自己評価だけは高い
その分タチがワルイ
まともな人間が近寄らない

そしてその自覚すらない
その自覚がないから更生もしない
つまり更生することもないから排除しかない

つまりオレは
素晴らしく情報価値が高いレスを提供すると同時に
この板から低学歴知恵遅れのクソニート、底辺ITドカタを排除する作業を実施している

わかった?

まともな板にするためにな
ひたすらオレはレスをしている

わかった?
2018/09/02(日) 00:12:57.53ID:elP7igYW
やっぱり移動先はLinux板にしといたほうが
良かったんじゃねーの?w
2018/09/02(日) 00:14:17.23ID:fQwovzZh
>>597
>この板をまともな板にするために
wwwww マジでっ!?
その言っているのは、いろいろ自分にも当てはまるだろうと思うんだけどな

自己顕示欲承認欲求と見なされるのは嫌らしいというのだけはわかったよw
600デフォルトの名無しさん
垢版 |
2018/09/02(日) 00:15:05.38ID:Tb3tt8fk
当然、オマエも排除の対象だ
2018/09/02(日) 00:16:13.74ID:fQwovzZh
「排除」www すげええええっwwww
いや、怖い...w
2018/09/02(日) 00:16:18.96ID:CFWyulsd
>>595
これは yes って返せばいいのか!?
603デフォルトの名無しさん
垢版 |
2018/09/02(日) 00:17:25.68ID:Oiltae2A
俺の目の黒いうちはまともにはさせんから安心しろ
2018/09/02(日) 00:17:46.37ID:8TU9g+nX
お前も駆逐してやる
2018/09/02(日) 00:24:56.83ID:elP7igYW
>>602
yじゃね?
2018/09/02(日) 00:27:05.66ID:elP7igYW
どうでもいいけど、
yesコマンドって

1. なんに使うんだ?
2. なるほど(使いみちを聞いて)
3. いつ使うんだ?(使ったことがない) ← みんなこの状態だよな?w
2018/09/02(日) 00:28:33.57ID:fQwovzZh
>>606
まったくもって、まんまだなw
2018/09/02(日) 00:40:01.27ID:elP7igYW
だいたい、-yオプションとか、-fオプションとか、-qオプションがあるからねぇ

おっとまたオプションの話だ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
610デフォルトの名無しさん
垢版 |
2018/09/02(日) 06:17:08.93ID:667Fbrpy
>>609
すごいな。一発で持ってくるとは
でもID:elP7igYWみたいな馬鹿を相手にするなんてもったいない……。
2018/09/02(日) 09:16:59.93ID:elP7igYW
>>609
なるほど。

初期(いつ?)の頃ってコマンドの開発どうだったんだろうね
ハイフンなしのオプションはしばしば用いられていたのか?

どんなコマンドも最初の実装ってのは存在するわけで、
それが今とどう同じなのか違うのか少し気になってきた
2018/09/03(月) 09:07:41.26ID:Phd/3F0T
俺、数百行クラスになったら静的言語にするから、
シェルスクリプトどころかrubyもpythonも使わない。
数百行にもなると書き捨てって規模じゃないし、
静的型検査なしで書くのは面倒くさい。

あとJavaScriptには現代的言語の持つ抽象化機能があらかたあるから、
連想配列も構造体相当品もないシェルスクリプトと同列に並べるのはJavaScriptに失礼。
2018/09/03(月) 09:13:23.99ID:Wp4QdYvu
シェルスクリプトでcのソースを書くのはちょっと面白い。
2018/09/03(月) 09:52:05.06ID:WkDP4f9E
>>613
どういう意味?
メタプログラミングみたいな?
2018/09/03(月) 10:26:05.35ID:cQ/Qcp18
>>612
大変やね。たまには数十クラス程度のものを作っても良いんやで
2018/09/03(月) 11:13:52.71ID:Phd/3F0T
>>615
そういう小規模なプログラムばかり書いてたらもっと動的言語を
使ってたかもしれないなあ。
就職して最初のプロジェクトがいきなり100万行オーバーのCプログラムの
大規模改造とかで、それ以後も数十万行クラスのプログラムばかり
触ってきて、ちょっと規模が大きくなると処理系の検査に頼る
習慣がついてしまった。
2018/09/03(月) 11:21:30.86ID:IWP2OX+N
>>616
うん、仕事でしかプログラミングしてないんだろうな
ってのはすぐにわかったよ。

1から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね

保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
2018/09/03(月) 13:56:12.52ID:Phd/3F0T
>>617
あれだけの情報で趣味プログラム書いてないってわかるなんてスゴイ⤴⤴
その推理フツーに間違ってるがw

そもそも小さなプログラムだって普通に書いてるし、だからこそシェルスクリプトスレに来てるわけで、
大きなプログラムしか書いてないとするとその時点で矛盾するじゃん。

自己矛盾した推理を前提に話を進めるとか、同僚にいたら困りそうなタイプだなあ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況