シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
シェルスクリプト総合 その34
■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
215デフォルトの名無しさん
2020/09/15(火) 21:49:15.52ID:DboEcGlM Goがやろうとしてる「どこでも動く!,依存性最小!」って
それまさにPOSIXシェルが数十年前から実践してることなんだけどねw
それまさにPOSIXシェルが数十年前から実践してることなんだけどねw
216デフォルトの名無しさん
2020/09/15(火) 22:09:41.62ID:5uVwOM3u YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむ。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
言語よりも、Docker, Kubernetes, AWS などの、サーバー構築・新規案件を重視する。
上流工程・新規案件の方が、価格交渉力が強いから
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむ。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
言語よりも、Docker, Kubernetes, AWS などの、サーバー構築・新規案件を重視する。
上流工程・新規案件の方が、価格交渉力が強いから
217デフォルトの名無しさん
2020/09/15(火) 22:27:04.19ID:5aHfCmvT218デフォルトの名無しさん
2020/09/15(火) 23:33:10.49ID:Tmf/kgmE 「シェルスクリプトで書いていたもの」を他の言語に
置き換えることで楽になることなんてないと思っている
※最初からシェルスクリプトで書いてないものの話ではない
置き換えることで楽になることなんてないと思っている
※最初からシェルスクリプトで書いてないものの話ではない
219デフォルトの名無しさん
2020/09/16(水) 00:01:35.11ID:MNPDZagX220デフォルトの名無しさん
2020/09/16(水) 00:07:40.59ID:NJW1Qx1P 1. PythonやPerlが入ってない環境がある
2. シェルスクリプトで実現できる
3. PythonやPerl入れればいいじゃん!
4. PythonやPerlで書き直す
5. コードがシェルスクリプトよりも面倒になってる
ほとんどがこれ
シェルスクリプトで実現できることを
他の言語で書いたら余計面倒になる
面倒になるのに他の言語で書こうとするやつは
単に(効率的な)シェルスクリプトを勉強したくないだけ
2. シェルスクリプトで実現できる
3. PythonやPerl入れればいいじゃん!
4. PythonやPerlで書き直す
5. コードがシェルスクリプトよりも面倒になってる
ほとんどがこれ
シェルスクリプトで実現できることを
他の言語で書いたら余計面倒になる
面倒になるのに他の言語で書こうとするやつは
単に(効率的な)シェルスクリプトを勉強したくないだけ
221デフォルトの名無しさん
2020/09/16(水) 00:18:53.14ID:fQIibdhg はしゃいでるところに水を差して悪いけどシェルスクリプトに必要な心得ってなんですかね?
素人ながらとりあえず動く物は作れたけどifだらけのクッソ汚いコードなんで修正したい
オプションもgetopts知らずにifと[[でなんとかしてる
bashの基本は押さえたけどLinuxの常識までは網羅できてないんで
素人ながらとりあえず動く物は作れたけどifだらけのクッソ汚いコードなんで修正したい
オプションもgetopts知らずにifと[[でなんとかしてる
bashの基本は押さえたけどLinuxの常識までは網羅できてないんで
222デフォルトの名無しさん
2020/09/16(水) 00:26:37.24ID:NJW1Qx1P ifだらけだからクソ汚いってことにはならない
もしキレイなコードとやらを知ってるのであれば
それをシェルスクリプトでやればいいだけ
もしキレイなコードとやらを知ってるのであれば
それをシェルスクリプトでやればいいだけ
223デフォルトの名無しさん
2020/09/16(水) 00:40:05.89ID:BkyZoSl2224デフォルトの名無しさん
2020/09/16(水) 00:41:31.46ID:67D9s6fy ほんとに必死だね
よほどコンプレックスが強いんだろうな
シェルスクリプトに固執しないとダメな状況ってそうそうないだろうに
よほどコンプレックスが強いんだろうな
シェルスクリプトに固執しないとダメな状況ってそうそうないだろうに
225デフォルトの名無しさん
2020/09/16(水) 00:49:16.66ID:NJW1Qx1P シェルスクリプトに固執っていうか、シェルスクリプトが最善な場合に
シェルスクリプトを使うってだけだよね
シェルスクリプトを使うってだけだよね
226デフォルトの名無しさん
2020/09/16(水) 01:41:09.00ID:BkyZoSl2227デフォルトの名無しさん
2020/09/16(水) 02:44:08.53ID:0ZaEBr0v >>221
入門UNIXシェルプログラミングという名著を読めばよい。
入門UNIXシェルプログラミングという名著を読めばよい。
228デフォルトの名無しさん
2020/09/16(水) 02:45:36.69ID:0ZaEBr0v >>226
シェルスクリプトと、コマンド、外部プログラムの呼び出しはシェルスクリプトではないからな?
シェルスクリプトと、コマンド、外部プログラムの呼び出しはシェルスクリプトではないからな?
229デフォルトの名無しさん
2020/09/16(水) 02:48:58.69ID:0ZaEBr0v シェルのスクリプトだから、シェルスクリプトの構文だけの話をすると、このスレは過疎化すると思うぞ。
230デフォルトの名無しさん
2020/09/16(水) 06:01:38.56ID:NJW1Qx1P だからといって外部コマンドのオプションやら文法の話をしたって意味ない
そういうのはmanページ見ろで終わる話
そういうのはmanページ見ろで終わる話
231デフォルトの名無しさん
2020/09/16(水) 10:12:38.47ID:+0jueX8G シェルスクリプトにこだわることの是非はともかく,
このスレに住み着くのは理があるわけだけど,
一方でPythonやRubyに固執している人が
このスレに居座りつづける理由が不明。
このスレはシェルスクリプトのことを話すスレなんだから,
Perl,Python,Ruby,Goなんかにこだわってても
ストレス溜まるだけだと思うんだけど……。
しかも不毛だしw
このスレに住み着くのは理があるわけだけど,
一方でPythonやRubyに固執している人が
このスレに居座りつづける理由が不明。
このスレはシェルスクリプトのことを話すスレなんだから,
Perl,Python,Ruby,Goなんかにこだわってても
ストレス溜まるだけだと思うんだけど……。
しかも不毛だしw
232デフォルトの名無しさん
2020/09/16(水) 10:14:49.79ID:+0jueX8G >>229
過疎化してなにか問題あるか?
シェルスクリプトの構文で質問がある場合は
ageればいいだけだし,
技術系のスレは勢いがなくても一定数の閲覧があるんだから
それで全く問題ない。
もしかしてなんJとかその辺りと同じような考えで
「過疎化する」=「悪」みたいに捉えちゃってる?
過疎化してなにか問題あるか?
シェルスクリプトの構文で質問がある場合は
ageればいいだけだし,
技術系のスレは勢いがなくても一定数の閲覧があるんだから
それで全く問題ない。
もしかしてなんJとかその辺りと同じような考えで
「過疎化する」=「悪」みたいに捉えちゃってる?
233デフォルトの名無しさん
2020/09/16(水) 10:33:38.10ID:+Zum6F6u シェルスクリプトとPythonやRubyの使い方は全く違っていて
シェルスクリプトの代替にはならないんだよ
だってPythonやRuby言語がシェルになるかい?
そういうのもあるみたいだけど使わないだろ
lslの代わりにPythonやRubyの関数を使えってことだよ
やるかい?
シェススクリプトはそういう手作業の操作をスクリプトにまとめたもので
「手作業の操作」そのものであることに価値があるんだよ
シェルスクリプトの代替にはならないんだよ
だってPythonやRuby言語がシェルになるかい?
そういうのもあるみたいだけど使わないだろ
lslの代わりにPythonやRubyの関数を使えってことだよ
やるかい?
シェススクリプトはそういう手作業の操作をスクリプトにまとめたもので
「手作業の操作」そのものであることに価値があるんだよ
234デフォルトの名無しさん
2020/09/16(水) 10:34:04.05ID:+Zum6F6u × lslの代わりにPythonやRubyの関数を使えってことだよ
○ ls -alの代わりに
○ ls -alの代わりに
235デフォルトの名無しさん
2020/09/16(水) 10:40:48.87ID:2aHyKEnC シェルスクリプトを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
236デフォルトの名無しさん
2020/09/16(水) 10:44:06.38ID:BkyZoSl2 >>235
シェルスクリプトを使ったほうがいいケースや使うべきであるケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
シェルスクリプトを使ったほうがいいケースや使うべきであるケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
237デフォルトの名無しさん
2020/09/16(水) 10:52:37.21ID:MNPDZagX >>223
当然その他個別に必要な要素はDockerfileに書き出すけど、実運用でコンテナを使えるのがDockerHubやオーケストレーションツールを含めた現代コンテナ運用の強みだし革新性だと思ってるよ
なんていうか「シェルスクリプトの文法や仕様が嫌い過ぎてシェルスクリプト数行で済むものにも別の言語を導入して書こうとする1byteもシェルスクリプトを書きたくない人間」に対してシェルスクリプトの可搬性や有用性・必要性を説こうとしてる人と
「シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件がある人間」に対して別の言語や環境で扱うのも選択肢だよって説こうとしてる人が争ってる感
当然その他個別に必要な要素はDockerfileに書き出すけど、実運用でコンテナを使えるのがDockerHubやオーケストレーションツールを含めた現代コンテナ運用の強みだし革新性だと思ってるよ
なんていうか「シェルスクリプトの文法や仕様が嫌い過ぎてシェルスクリプト数行で済むものにも別の言語を導入して書こうとする1byteもシェルスクリプトを書きたくない人間」に対してシェルスクリプトの可搬性や有用性・必要性を説こうとしてる人と
「シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件がある人間」に対して別の言語や環境で扱うのも選択肢だよって説こうとしてる人が争ってる感
238デフォルトの名無しさん
2020/09/16(水) 10:58:35.61ID:VpAz8kB7 格言「すべての道は、Vagrant に通ず」
Homebrew が、何十年も他の言語で書かれないわけ
つまり、システム構築運用は、できる限りRuby で書く。
シンプルなものに限って、シェルスクリプト
Homebrew が、何十年も他の言語で書かれないわけ
つまり、システム構築運用は、できる限りRuby で書く。
シンプルなものに限って、シェルスクリプト
239デフォルトの名無しさん
2020/09/16(水) 11:10:41.03ID:Uxf3IaQ5 このスレのおかげでシェルだけでWebサイト作れました!
RubyやPythonなんて学ぶ価値無いですね
RubyやPythonなんて学ぶ価値無いですね
240デフォルトの名無しさん
2020/09/16(水) 11:36:55.73ID:+0jueX8G >>235
PythonやRubyを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術へ
こうですか? 分かりません!
PythonやRubyを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない
だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦
不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術へ
こうですか? 分かりません!
241デフォルトの名無しさん
2020/09/16(水) 11:38:45.59ID:+0jueX8G いいかげん下らなくなってきたけど,ともかく
「シェルスクリプトにこだわるな! Python・Rubyを使え!」
という主張は同時に「Python・Rubyにこだわっている」わけなんだから,
いくら「こだわり」をバカにしてマウント取ったところで,
ものすごい勢いで自分に跳ね返ってくるだけっていうねw
「シェルスクリプトにこだわるな! Python・Rubyを使え!」
という主張は同時に「Python・Rubyにこだわっている」わけなんだから,
いくら「こだわり」をバカにしてマウント取ったところで,
ものすごい勢いで自分に跳ね返ってくるだけっていうねw
242デフォルトの名無しさん
2020/09/16(水) 11:58:19.63ID:sxVBKKDL え、両方使いなよって主張じゃないの?
そういうレスした本人じゃないから知らんけど
そういうレスした本人じゃないから知らんけど
243デフォルトの名無しさん
2020/09/16(水) 12:04:24.33ID:+Zum6F6u >>237
> 「シェルスクリプトの文法や仕様でウッとなってしまう
それってようするにオブジェクト指向言語にそまってて
関数型言語に抵抗があるやつと一緒なんだわ
パラダイムが同じならそれもわかるけど、シェルスクリプトは異なるパラダイムなので
単に異なるパラダイムのものをつけつけられないだけ
> 「シェルスクリプトの文法や仕様でウッとなってしまう
それってようするにオブジェクト指向言語にそまってて
関数型言語に抵抗があるやつと一緒なんだわ
パラダイムが同じならそれもわかるけど、シェルスクリプトは異なるパラダイムなので
単に異なるパラダイムのものをつけつけられないだけ
244デフォルトの名無しさん
2020/09/16(水) 12:09:15.41ID:+Zum6F6u >>238
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hate
nablog.com/entry/2020/03/03/100000
> 将来的にmacOSデフォルトにRubyやPythonが含まれなくなる (参考リンク)。
こうなる
HomebrewのインストーラーをRubyからBashに書き直しました!
https://itchyny.hate
nablog.com/entry/2020/03/03/100000
> 将来的にmacOSデフォルトにRubyやPythonが含まれなくなる (参考リンク)。
こうなる
245デフォルトの名無しさん
2020/09/16(水) 12:39:23.56ID:BkyZoSl2 >>237
シェルスクリプト自体に文句があるのはしゃあない(つーか、ないヤツはおらんやろw)が、全否定したらこのスレではただのあらしでしかない。
さらに、最近の一部のヤツはとくにバカっぽかったからな。
シェルスクリプト自体に文句があるのはしゃあない(つーか、ないヤツはおらんやろw)が、全否定したらこのスレではただのあらしでしかない。
さらに、最近の一部のヤツはとくにバカっぽかったからな。
246デフォルトの名無しさん
2020/09/16(水) 12:41:43.36ID:0bH7BLR9 状況に応じて使う道具を変えなよって言われてるのに、PythonやRubyを持ち出して否定したがるのはそれらを使えないことへのコンプレックスが強いから
どの技術でもその限界や短所を理解してないやつが多ければ要注意
どの技術でもその限界や短所を理解してないやつが多ければ要注意
247デフォルトの名無しさん
2020/09/16(水) 12:42:57.45ID:uLph0UBy シェススクリプトへの文句というより
シェルスクリプトが改善されないことに文句がある
何年停滞してるんだ
シェルスクリプトが改善されないことに文句がある
何年停滞してるんだ
248238
2020/09/16(水) 12:55:13.00ID:VpAz8kB7 ハーバード大学には、Ruby on Rails の授業がある。
他の言語だと、数年以上遅れて、その間にシェアを取られてしまうから
他の言語では、複雑さが並みじゃないから、簡単に作れない。
かなりの費用・期間が掛かるから、そういうプロジェクトを起ち上げられない
例えば、Ruby以外のプロジェクトで、半年過ぎると取りやめになる。
サーバー側言語では、Ruby, Go しか使われない
他の言語だと、数年以上遅れて、その間にシェアを取られてしまうから
他の言語では、複雑さが並みじゃないから、簡単に作れない。
かなりの費用・期間が掛かるから、そういうプロジェクトを起ち上げられない
例えば、Ruby以外のプロジェクトで、半年過ぎると取りやめになる。
サーバー側言語では、Ruby, Go しか使われない
249デフォルトの名無しさん
2020/09/16(水) 13:03:02.60ID:D69h0Ren PythonとかRubyみたいな簡単な言語使ってる雑魚がイキってるのマジで笑える
250238
2020/09/16(水) 13:04:02.76ID:VpAz8kB7 例えば、Ruby の数値リテラルには、_ を含めることができる
1_000_000_000 # 1000000000
0xffff_ffff # 0xffffffff
この機能がないと、下みたいに、コメントを書かないといけないし、確かめるのも大変
1000000000 # 1_000_000_000
Ruby では、こういうように、バグを減らす工夫をしている。
だから、こういうことを思いつく日本人は、smart だって言われる
1_000_000_000 # 1000000000
0xffff_ffff # 0xffffffff
この機能がないと、下みたいに、コメントを書かないといけないし、確かめるのも大変
1000000000 # 1_000_000_000
Ruby では、こういうように、バグを減らす工夫をしている。
だから、こういうことを思いつく日本人は、smart だって言われる
251デフォルトの名無しさん
2020/09/16(水) 13:11:20.74ID:MNPDZagX >>243
どこの誰の事を異なるパラダイムを受け付けられない人間としてるのか知らないけど、パラダイムが異なれば当然向き不向きがあるよね?
その上で私は
> シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件
っていう「シェルスクリプトのパラダイムに向かない作業」を話題の前提にしてる人が他の言語を提案してるんじゃないの?って話しかしてないのよ
「何らかの作業をシェルスクリプトのパラダイムに向かない作業だと感じるのは、そいつがパラダイムを受け付けないだけで不向きな作業だからではない」という可能性は間違いなくある
ただ可能性はあるけれど恒真とは思わない
私がシェルスクリプトに向いてない作業はあると思ってるから
もしあなたがシェルスクリプトに向かない作業なんてないと思ってるなら何も言わない
この先は気持ちの問題なので
どこの誰の事を異なるパラダイムを受け付けられない人間としてるのか知らないけど、パラダイムが異なれば当然向き不向きがあるよね?
その上で私は
> シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件
っていう「シェルスクリプトのパラダイムに向かない作業」を話題の前提にしてる人が他の言語を提案してるんじゃないの?って話しかしてないのよ
「何らかの作業をシェルスクリプトのパラダイムに向かない作業だと感じるのは、そいつがパラダイムを受け付けないだけで不向きな作業だからではない」という可能性は間違いなくある
ただ可能性はあるけれど恒真とは思わない
私がシェルスクリプトに向いてない作業はあると思ってるから
もしあなたがシェルスクリプトに向かない作業なんてないと思ってるなら何も言わない
この先は気持ちの問題なので
252デフォルトの名無しさん
2020/09/16(水) 14:56:05.79ID:+0jueX8G ほとんどの人が「別にPythonでもRubyでもいいけど,
そうじゃない選択肢としてシェルがある」というだけの話をしてるのに
「いまだにシェルを使ってるのは時代遅れ!」
「シェルにこだわるな!Python・Rubyを使え!(こだわり)」
となるのはなぜなのか。
あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
主張をしてるのも問題。
そうじゃない選択肢としてシェルがある」というだけの話をしてるのに
「いまだにシェルを使ってるのは時代遅れ!」
「シェルにこだわるな!Python・Rubyを使え!(こだわり)」
となるのはなぜなのか。
あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
主張をしてるのも問題。
253デフォルトの名無しさん
2020/09/16(水) 15:03:48.26ID:BkyZoSl2254デフォルトの名無しさん
2020/09/16(水) 15:06:08.22ID:BkyZoSl2255デフォルトの名無しさん
2020/09/16(水) 18:42:23.15ID:vxZ/INdB 技術力のある人はシェルスクリプトの短所や限界をよく理解している
Google曰く
If you are writing a script that is more than 100 lines long,
you should rewrite it in a more structured language now.
https://google.github.io/styleguide/shellguide.html#s1.2-when-to-use-shell
GitLab曰く
we recommend staying away from shell scripts as much as possible.
A language like Ruby or Python is almost always a better choice.
https://docs.gitlab.com/ee/development/shell_scripting_guide/#avoid-using-shell-scripts
Google曰く
If you are writing a script that is more than 100 lines long,
you should rewrite it in a more structured language now.
https://google.github.io/styleguide/shellguide.html#s1.2-when-to-use-shell
GitLab曰く
we recommend staying away from shell scripts as much as possible.
A language like Ruby or Python is almost always a better choice.
https://docs.gitlab.com/ee/development/shell_scripting_guide/#avoid-using-shell-scripts
256デフォルトの名無しさん
2020/09/16(水) 19:16:11.22ID:PhvdJ7XH >>255
全てに当てはまることだけど、理由が書いてないコーディング規約はクソ
全てに当てはまることだけど、理由が書いてないコーディング規約はクソ
257デフォルトの名無しさん
2020/09/16(水) 19:59:30.26ID:YseoXyv4 そういやユニケージで作られた例のシステム、ユニケージを捨てて
全部作り直したそうだな
全部作り直したそうだな
258デフォルトの名無しさん
2020/09/16(水) 20:58:02.47ID:VpAz8kB7 同じディレクトリ内にある、yarn.js ファイルを呼ぶラッパーである、yarn ファイル・コマンド
#!/bin/sh
argv0=$(echo "$0" | sed -e 's,\\,/,g')
basedir=$(dirname "$(readlink "$0" || echo "$argv0")")
case "$(uname -s)" in
Darwin) basedir="$( cd "$( dirname "$argv0" )" && pwd )";;
Linux) basedir=$(dirname "$(readlink -f "$0" || echo "$argv0")");;
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
command_exists() { command -v "$1" >/dev/null 2>&1; }
if command_exists node; then
if [ "$YARN_FORCE_WINPTY" = 1 ] || command_exists winpty && test -t 1; then
winpty node "$basedir/yarn.js" "$@"
else
exec node "$basedir/yarn.js" "$@"
fi
ret=$?
# Debian, Ubuntu では、node ではなく、nodejs
elif command_exists nodejs; then
exec nodejs "$basedir/yarn.js" "$@"
ret=$?
else
>&2 echo 'Yarn requires Node.js 4.0 or higher to be installed.'
ret=1
fi
exit $ret
#!/bin/sh
argv0=$(echo "$0" | sed -e 's,\\,/,g')
basedir=$(dirname "$(readlink "$0" || echo "$argv0")")
case "$(uname -s)" in
Darwin) basedir="$( cd "$( dirname "$argv0" )" && pwd )";;
Linux) basedir=$(dirname "$(readlink -f "$0" || echo "$argv0")");;
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
command_exists() { command -v "$1" >/dev/null 2>&1; }
if command_exists node; then
if [ "$YARN_FORCE_WINPTY" = 1 ] || command_exists winpty && test -t 1; then
winpty node "$basedir/yarn.js" "$@"
else
exec node "$basedir/yarn.js" "$@"
fi
ret=$?
# Debian, Ubuntu では、node ではなく、nodejs
elif command_exists nodejs; then
exec nodejs "$basedir/yarn.js" "$@"
ret=$?
else
>&2 echo 'Yarn requires Node.js 4.0 or higher to be installed.'
ret=1
fi
exit $ret
259デフォルトの名無しさん
2020/09/16(水) 20:59:44.06ID:PhvdJ7XH ユニケージはシェルスクリプトじゃないからなぁ
シェルスクリプトを使って作られたCOBOL用関数みたいなもん
ユニケージを使った途端、シェルスクリプト言語から
COBOL言語に開発スタイルが変わる
シェルスクリプトを使って作られたCOBOL用関数みたいなもん
ユニケージを使った途端、シェルスクリプト言語から
COBOL言語に開発スタイルが変わる
260デフォルトの名無しさん
2020/09/16(水) 21:09:23.04ID:PhvdJ7XH シェルスクリプトを始めた頃は
> usp Tukubaiは短期間低コストで企業システムを構築するエンタープライズ向けコマンド群。
> ユニケージ開発手法で利用するコマンド群であり、
https://uec.usp-lab.com/tukubai_man
に便利なコマンドがあるんじゃないか?って思ったんだよ
実際に見てみたら完全にゴミ
> ctail(1) ファイルの末尾n行を削って出力
例えばこれとかhead -n -10でいいじゃんとか
> count(1) 同じキーの行数をカウント
それをawkでやるのがシェルスクリプトでしょとか
そういうのばかりで、
根底に CSVならぬ、空白区切りのファイル形式を使うという前提があって
そのデータ操作するためのコマンド群でしかないことに気付いた
> usp Tukubaiは短期間低コストで企業システムを構築するエンタープライズ向けコマンド群。
> ユニケージ開発手法で利用するコマンド群であり、
https://uec.usp-lab.com/tukubai_man
に便利なコマンドがあるんじゃないか?って思ったんだよ
実際に見てみたら完全にゴミ
> ctail(1) ファイルの末尾n行を削って出力
例えばこれとかhead -n -10でいいじゃんとか
> count(1) 同じキーの行数をカウント
それをawkでやるのがシェルスクリプトでしょとか
そういうのばかりで、
根底に CSVならぬ、空白区切りのファイル形式を使うという前提があって
そのデータ操作するためのコマンド群でしかないことに気付いた
261デフォルトの名無しさん
2020/09/16(水) 21:16:09.82ID:PhvdJ7XH ユニケージのコマンドに絶望した後
クソコマンドをまともにしてやろうと思ったが
クソな理由はコマンドではなくデータ形式だったので
どうしようもないというねw
データ形式を空白区切り前提にしなければ、
通常のシェルスクリプトで使うコマンドを使うことになるが
ユニケージのコマンドとは全く異なる仕様になる
直しようがない
クソコマンドをまともにしてやろうと思ったが
クソな理由はコマンドではなくデータ形式だったので
どうしようもないというねw
データ形式を空白区切り前提にしなければ、
通常のシェルスクリプトで使うコマンドを使うことになるが
ユニケージのコマンドとは全く異なる仕様になる
直しようがない
262デフォルトの名無しさん
2020/09/16(水) 21:31:53.79ID:fQIibdhg263デフォルトの名無しさん
2020/09/16(水) 21:36:41.16ID:66kQJWEh264デフォルトの名無しさん
2020/09/16(水) 22:04:09.41ID:RIbUq78m ポイント? なんでそう思ったの?
根拠がないから具体的ではないだけ
根拠がないから具体的ではないだけ
265デフォルトの名無しさん
2020/09/16(水) 22:36:59.59ID:+0jueX8G どうでもいいんですけど,
シェルスクリプト以外の話題なら他所でやってもらえません?
もちろんシェルスクリプトの存在論も含めて。
テンプレくらい読んでくれよな〜頼むよ〜
シェルスクリプト以外の話題なら他所でやってもらえません?
もちろんシェルスクリプトの存在論も含めて。
テンプレくらい読んでくれよな〜頼むよ〜
266デフォルトの名無しさん
2020/09/16(水) 22:48:58.53ID:AIq8Iw+F 長々とどうでもいいこと書き綴ってスレ荒らしてたのお前じゃん
267デフォルトの名無しさん
2020/09/16(水) 22:56:04.59ID:BkyZoSl2 >>264
わかる人にはわかる。
わからない人のほうがその理由を内省するべき。
ただ、Bashは関数と連想配列のおかげで、それなりの構造化はできてるな。
逆に言うと、よっぽどややこしいデータ構造を組むのでなければ、シェルスクリプトでも可、ってことか。w
わかる人にはわかる。
わからない人のほうがその理由を内省するべき。
ただ、Bashは関数と連想配列のおかげで、それなりの構造化はできてるな。
逆に言うと、よっぽどややこしいデータ構造を組むのでなければ、シェルスクリプトでも可、ってことか。w
268デフォルトの名無しさん
2020/09/17(木) 05:40:41.40ID:arhYEtgP269デフォルトの名無しさん
2020/09/17(木) 06:53:22.12ID:7lkKgDUb まあ結局
「シェルスクリプトでおかしな書き方をするやつは
Pythonで書こうがRubyを使って メタプログラミング() をしようが
下手な書き方をすることに変わりない」
ってことよね。
「シェルスクリプトでおかしな書き方をするやつは
Pythonで書こうがRubyを使って メタプログラミング() をしようが
下手な書き方をすることに変わりない」
ってことよね。
270デフォルトの名無しさん
2020/09/17(木) 07:33:41.05ID:hnEDQboZ シェルスクリプトから○○言語に変更したってやつは
変更した結果どうなったのか、そのコードを見てみたいんだが
シェルスクリプトで一体何をしていたのか?
変更した結果どうなったのか、そのコードを見てみたいんだが
シェルスクリプトで一体何をしていたのか?
271デフォルトの名無しさん
2020/09/17(木) 09:41:38.06ID:v24DPghR Pythonさえやっておけばシェルスクリプトやる必要ないってことじゃないですかやったー!
272デフォルトの名無しさん
2020/09/17(木) 09:46:01.87ID:HvzSxf7x Pythonの関数(特別に作られたものではなく標準関数)を使うという前提の
シェルが作れるものなら作ってみて欲しいね
Python以外でもいいけど
シェルが作れるものなら作ってみて欲しいね
Python以外でもいいけど
273デフォルトの名無しさん
2020/09/17(木) 09:53:36.15ID:d9Y9RH6u274デフォルトの名無しさん
2020/09/17(木) 10:32:54.56ID:chlfrU3v275デフォルトの名無しさん
2020/09/17(木) 10:53:19.56ID:PVLBY2eY >>267
POSIX準拠じゃないから使えないねw
POSIX準拠じゃないから使えないねw
276デフォルトの名無しさん
2020/09/17(木) 11:04:29.11ID:d9Y9RH6u277デフォルトの名無しさん
2020/09/17(木) 11:05:00.12ID:Ebl/PrBy bash特有の機能を使おうと思った時点で
それはシェルスクリプトでやるべきことじゃないんだろうな
もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
ようするにシェルスクリプトはPOSIX準拠の機能で十分なんだよ
それはシェルスクリプトでやるべきことじゃないんだろうな
もちろんちゃんとシェルスクリプトのスタイル(関数型)でコーディングするのは大前提
ようするにシェルスクリプトはPOSIX準拠の機能で十分なんだよ
278デフォルトの名無しさん
2020/09/17(木) 11:47:37.44ID:6qIvJTFZ シェルスクリプトのスタイルは関数型!
さすがシェルスクリプターの考えることは次元が違うぜ
さすがシェルスクリプターの考えることは次元が違うぜ
279デフォルトの名無しさん
2020/09/17(木) 12:00:55.65ID:Ebl/PrBy >>278
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
https://qiita.com/piroor/items/77233173707a0baa6360
ところで、「流入してくるデータを加工して返却する」「ステートレスな」処理が得意で、
「内部で複雑な状態を持つ必要のある」「ステートフルな」処理が苦手だというのは、
関数型言語にも見られる特徴です。14
そう考えると、シェルスクリプトで凝った事をしようとする人があまり多くないのも頷けます。
「関数型言語は難しい」と言われる事が多いですが、他の言語とパラダイムが違う言語だと思えば、
これまでのプログラミングのパラダイムに囚われたままでは理解が進まないのも当然です。
14. 実際、関数型言語が得意な人にこの説を披露してみた所、
「関数型言語というのはストリーム型のデータを処理するという所が
キモ(なので、解釈としてそう外してはいない)」という感じの感想を頂きました。 ?
280デフォルトの名無しさん
2020/09/17(木) 12:33:52.60ID:7lkKgDUb 沈黙してて草
281デフォルトの名無しさん
2020/09/17(木) 12:45:52.84ID:NHfa1bvj 関数型Elixir は、map・パイプラインばっかり
元の要素を変更しない。
新たに要素を作りながら、変換していく
元の要素を変更しない。
新たに要素を作りながら、変換していく
282デフォルトの名無しさん
2020/09/17(木) 14:19:40.85ID:HGhOp2pI283デフォルトの名無しさん
2020/09/17(木) 14:32:15.94ID:+vk10SUH 関数型言語と同様の特徴があるなら、関数型スタイルでいいだろw
関数型言語だって言ってないんだからさぁ
関数型言語だって言ってないんだからさぁ
284デフォルトの名無しさん
2020/09/17(木) 14:32:58.85ID:+vk10SUH > パイプでつなぐスタイルとでも書いとけば恥かかずに済んだのにね
パイプ以外も関数型にみ見られる特徴があるので
関数型スタイルでいいだろw
パイプ以外も関数型にみ見られる特徴があるので
関数型スタイルでいいだろw
285デフォルトの名無しさん
2020/09/17(木) 15:23:37.29ID:d9Y9RH6u >>283
ダメ。
関数型は、結果を呼び出し側に戻すことに意義がある。
処理の流れも記述の形式も、むしろ何も似ていない。
もとの文で「特徴」と言っているが、カテゴリの基準にしていい意味ではない。
シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
ダメ。
関数型は、結果を呼び出し側に戻すことに意義がある。
処理の流れも記述の形式も、むしろ何も似ていない。
もとの文で「特徴」と言っているが、カテゴリの基準にしていい意味ではない。
シェルスクリプトは、フィルタ型とかパイプライン型とか呼べばいいのでは。
286デフォルトの名無しさん
2020/09/17(木) 16:19:03.20ID:kAbaS/2M > 関数型は、結果を呼び出し側に戻すことに意義がある。
結果を呼び出し側に戻すなんて、どの言語でも同じじゃん
正しく説明することすらできない程度なら語らないようがいいよ
墓穴掘るだけだから
結果を呼び出し側に戻すなんて、どの言語でも同じじゃん
正しく説明することすらできない程度なら語らないようがいいよ
墓穴掘るだけだから
287デフォルトの名無しさん
2020/09/17(木) 18:06:50.53ID:7lkKgDUb その理屈で言うなら
C言語は「C言語型」だし
Elixirは「Elixir言語型」だし
F*は「F*言語型」だね。
言語使うたび,パラダイム増えるね♪
C言語は「C言語型」だし
Elixirは「Elixir言語型」だし
F*は「F*言語型」だね。
言語使うたび,パラダイム増えるね♪
288デフォルトの名無しさん
2020/09/17(木) 18:20:43.06ID:d9Y9RH6u >>286
まともに理解することすらできない程度なんだね。w
シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
ステートレスでというほかの主張とあわせて一貫している。
うむ。
これは、たしかにわかりやすいな。
覚えておこう。
まともに理解することすらできない程度なんだね。w
シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
ステートレスでというほかの主張とあわせて一貫している。
うむ。
これは、たしかにわかりやすいな。
覚えておこう。
289デフォルトの名無しさん
2020/09/17(木) 18:21:07.37ID:d9Y9RH6u >>287
アホなのかな?
アホなのかな?
290デフォルトの名無しさん
2020/09/17(木) 18:34:36.35ID:0NbLDZXP >>288
> シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
> ステートレスでというほかの主張とあわせて一貫している。
まさに関数型の動作だねw
初心者でよくいるんだわ。関数を使うのが関数型だって思ってるやつ
お前がそれだな
> シェルスクリプトでは、関数式のように値を返すのではなく、パイプラインのように出力を流していくように考えよう、とリンク先は主張してる。
> ステートレスでというほかの主張とあわせて一貫している。
まさに関数型の動作だねw
初心者でよくいるんだわ。関数を使うのが関数型だって思ってるやつ
お前がそれだな
291デフォルトの名無しさん
2020/09/17(木) 19:02:35.37ID:Wtt+0SS3 シェルスクリプトは手続き型
他言語との一番の違いは処理の入力と出力が文字列に固定されていること
処理の合成を容易にした代わりに入出力に関わる部分で一般的な手続き型言語とは異なる作法が必要
その作法はプログラミングパラダイムというほど大げさなものじゃない
他言語との一番の違いは処理の入力と出力が文字列に固定されていること
処理の合成を容易にした代わりに入出力に関わる部分で一般的な手続き型言語とは異なる作法が必要
その作法はプログラミングパラダイムというほど大げさなものじゃない
292デフォルトの名無しさん
2020/09/17(木) 19:31:27.99ID:d9Y9RH6u293デフォルトの名無しさん
2020/09/17(木) 21:33:54.93ID:0NbLDZXP 言い返せないでおしまい
294デフォルトの名無しさん
2020/09/17(木) 22:32:05.15ID:d9Y9RH6u295デフォルトの名無しさん
2020/09/17(木) 22:33:18.53ID:0NbLDZXP296デフォルトの名無しさん
2020/09/17(木) 23:57:34.63ID:7k+fww17 https://wiki-dev.bash-hackers.org/syntax/basicgrammar#shell_function_definitions
$ {x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
simpleとは一体
$ {x}<"$x" _=${x=<(echo moo)} <&0$(cat <&"$x" >&2)
simpleとは一体
297デフォルトの名無しさん
2020/09/18(金) 02:31:56.89ID:Mudt/vfl298デフォルトの名無しさん
2020/09/18(金) 04:54:45.60ID:5l49iFOd299デフォルトの名無しさん
2020/09/18(金) 21:42:27.80ID:JMG0ZHyH300デフォルトの名無しさん
2020/09/18(金) 21:53:19.38ID:5l49iFOd >>299
そこに書いてること読んだ?w
そこに書いてること読んだ?w
301デフォルトの名無しさん
2020/09/18(金) 22:00:45.75ID:JMG0ZHyH 読んだよ?だから聞いてるんだけど
302デフォルトの名無しさん
2020/09/19(土) 14:52:56.70ID:Uw1s41Nc シェルって普通に「副作用」があるコマンドが使われてるよね
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
POSIXには収録されてないとはいえ,mktempなんかはめちゃめちゃ利用されて
かつ副作用があるコマンドの一例じゃないかしら。
mktemp $$-XXXXX
とすると「ファイルが作られて」かつ「標準出力にそのファイル名が出力」される。
303デフォルトの名無しさん
2020/09/19(土) 16:37:30.78ID:1l7cqS+f 今なら、プロセス置換やcoprocを使えば、テンポラリファイルなしにできることも少なくなさそう。
304デフォルトの名無しさん
2020/09/19(土) 17:20:44.75ID:Uw1s41Nc305デフォルトの名無しさん
2020/09/19(土) 17:25:16.15ID:VJFBPJzE 標準エラー出力を画面にそのまま表示し、同時にパイプで繋いだ先にも標準出力として出力する方法ってありませんか?
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
色付きのエラーを画面に表示させ、さらにその内容をgrepで判定したいです
エラー出力はそのままパイプに渡せないのでgrepにかけられません
エラー出力を標準出力に渡すとgrepで判定できますが色が消えてしまいます
306デフォルトの名無しさん
2020/09/19(土) 19:23:52.66ID:1l7cqS+f307デフォルトの名無しさん
2020/09/19(土) 19:45:10.10ID:okNEuTuK308デフォルトの名無しさん
2020/09/19(土) 19:51:41.55ID:okNEuTuK 副作用がまったくないのは"純粋"関数型言語
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
純粋じゃない関数型言語は副作用を許容する
そして関数型スタイルという言い方なら
別に関数型言語である必要はない
https://docs.python.org/ja/3.6/howto/functional.html
> この文書では、関数型スタイルでプログラムを実装するのに
> ピッタリな Python の機能を見てまわることにしましょう。
309デフォルトの名無しさん
2020/09/19(土) 20:15:47.31ID:9OWUS6ol 初心者のうろ覚えですが、モナドというのは関係ない?
310デフォルトの名無しさん
2020/09/19(土) 20:37:42.24ID:Uw1s41Nc >>307
え,ファイル作成って副作用としてしか表現できないと思ってんの?
え,ファイル作成って副作用としてしか表現できないと思ってんの?
311デフォルトの名無しさん
2020/09/19(土) 20:41:20.32ID:okNEuTuK シェルスクリプトのファイル作成もモナドですねー
312デフォルトの名無しさん
2020/09/19(土) 20:46:22.01ID:okNEuTuK https://qastack.jp/software/369770/do-functional-programming-languages-disallow-side-effects
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
その意味で、関数型プログラミング言語は実際には副作用を許容します。
外部の世界に影響を及ぼし、他の関数を呼び出し、例外を発生させ、
ファイルに書き込むなどの無数の例があるからです。
313デフォルトの名無しさん
2020/09/19(土) 20:50:25.87ID:okNEuTuK 常識で考えればわかるだろうに、関数型言語でファイルの作成ができるならそれは副作用でしか無いんだよ。
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
関数型言語でファイルの作成が副作用に当たらないという屁理屈を言えるなら言ってみるが良い
知ってるなら「○○で表現できる」と断定する言い方をしてみろよ
知らないから>>310のような言い方をしてごまかしている
314デフォルトの名無しさん
2020/09/19(土) 21:22:03.60ID:L0h6VTd7 >>305
scriptで実行してからtypescriptをgrepすれば?
scriptで実行してからtypescriptをgrepすれば?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 舛添要一「日本は亡国への道をひた走り」「相対的国力は中国が増大し日本が低下している」 [冬月記者★]
- 【物価高対策】「おこめ券を配布しません」大阪府交野の市長が明言「経費率が高い」「今高い米をムリして…」 [1ゲットロボ★]
- 従来の健康保険証、12月1日に期限切れ マイナ利用率は37% [蚤の市★]
- 【あれ?】訪日自粛どこ吹く風 中国からどっと2000人 金沢港に今年最後のクルーズ船 [nita★]
- 【地方】「もうヤメとけ、また移住者様が帰っちゃうぞ」田舎の「いじめ体質」★3 [七波羅探題★]
- 落ち度はゼレンスキー氏に 内政混乱、市民怒り [蚤の市★]
- 池上彰「海外のメディアは政府に遠慮せず批判するが、政治家はそれを受け入れ、怒ったり弾圧したりしない。」高市さん? [834922174]
- 🇨🇳中国で🇯🇵高市早苗首相の愛称『毒苗』☠🌱に決まる😅 [718678614]
- ネット民「ヤンキー 根は良い人ばかり。良い人だから群れられる」 [932029429]
- イッチでーす。今からお前らを泣かしまーす。
- 北京・上海の犬夜叉コンサート、中止🐶犬夜叉30周年で声優も登壇する予定だった🐕許せねえよ高市早苗😡 [485187932]
- TBS山本恵里伽アナ「今の日本社会は世界平和や反戦など当たり前のことを言えない空気になっている」これもう新しい戦前だろ高市 [931948549]
