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

■ このスレッドは過去ログ倉庫に格納されています
2020/08/21(金) 15:17:55.64ID:mArnj/tT
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

シェルスクリプト総合 その33
https://mevius.5ch.net/test/read.cgi/tech/1584893550/
2020/09/13(日) 23:54:22.32ID:w3Y31Eld
Windows10, WSL, Ubuntu 18.04 では、最初から、Python3 も入っている。
anyenv, asdf などで、Ruby, Node.js などの好きなバージョンも入れられる

file `which python`
/usr/bin/python: symbolic link to python2.7

file `which python2`
/usr/bin/python2: symbolic link to python2.7

file `which python3`
/usr/bin/python3: symbolic link to python3.6
2020/09/14(月) 00:00:43.38ID:8/TQSAVT
>>175
>>173はUnixの話をしているのに,
Linuxの話にすり替えるべきじゃないな。

「Linuxの思想はない」かも知れないが,
>>173が言っているのはUnix哲学だ。
178デフォルトの名無しさん
垢版 |
2020/09/14(月) 00:39:00.87ID:LBeWsbwt
>>174
おまえは画面まっくらで、いくらキーを打っても何もできない状態で使うのか?

組み込みならわかるんだか。
179デフォルトの名無しさん
垢版 |
2020/09/14(月) 00:43:01.28ID:LBeWsbwt
>>177
あのさ、LinuxはUNIXをPCアーキテクチャのハード用に、初めは個人が作ったものなんだよ。

UNIXの仕様が完全にはわからなくて、Linuxは少し異なるものになってしまった。

だから、LinuxはUNIXでないと説明される。しかし、UNIXの定義はPOSIX程度しかないため、UNIXから見ればLinuxもUNIXに含めてもいいかなあレベルになる。
180デフォルトの名無しさん
垢版 |
2020/09/14(月) 00:46:08.13ID:LBeWsbwt
>>175
あのね、Linuxはレッドハット社がほぼ標準を決めていて、基本的なところが大きく変わることはない。

あなたの言っている部分は枝葉の部分。
2020/09/14(月) 01:28:26.98ID:arqUoPz9
実際に存在するLinuxの話をしましょうよw

$ docker run -it alpine
/ # perl
/bin/sh: perl: not found
/ # python
/bin/sh: python: not found
/ # pyton3
/bin/sh: pyton3: not found
/ # ruby
/bin/sh: ruby: not found
2020/09/14(月) 01:51:11.45ID:Cxw6q39C
>>177
であれば、ほとんど死んだようなOSの哲学を語ることに現実の意味はない。
考古学者以外は。w
2020/09/14(月) 01:58:31.80ID:8w1wBNml
Alpine は、5MB しかない。
何も入っていない

それに、Ruby on Rails, Node.js などを入れて使うもの
2020/09/14(月) 02:31:04.77ID:Cxw6q39C
>>178
サーバー用最小ならおかしくない。

まさかデフォルトって、GUIデスクトップ用のことを言ってないよなあ?
185デフォルトの名無しさん
垢版 |
2020/09/14(月) 02:41:43.07ID:LBeWsbwt
>>184
おまえさ、CUIの画面があるのがあたりまえだと思っているだろ?

CUIそのものがシェルなんだよ。
186デフォルトの名無しさん
垢版 |
2020/09/14(月) 02:43:36.81ID:LBeWsbwt
コンピューターの仕組みを理解していないのにいちいち見当違いのことを書くんじゃない。
2020/09/14(月) 09:57:03.60ID:Cxw6q39C
>>185
だから何?

>>186
自己紹介乙。w
2020/09/14(月) 10:40:45.77ID:S/jhW9z+
Perlが入ってないLinuxがあるってこともしらんのか
2020/09/14(月) 10:41:04.73ID:S/jhW9z+
しかも有名でよく使われてるディストリ
190デフォルトの名無しさん
垢版 |
2020/09/14(月) 17:25:24.86ID:LBeWsbwt
揚げ足取りは久しぶりに
2020/09/14(月) 17:37:46.13ID:dr1ZmQsx
>>178
どうしてperlかなかったら画面真っ暗で文字が打てないわけ?
192デフォルトの名無しさん
垢版 |
2020/09/15(火) 01:42:38.92ID:Yms7aROo
シェルがなかったらと書いてあるだろ。
しつこいけどシェルは人間とのユーザーインタフェースだよ。
シェルがなければ人間は何もできない。
193デフォルトの名無しさん
垢版 |
2020/09/15(火) 01:43:33.60ID:Yms7aROo
コンピューターは必ずCUIの画面があると思ってしまうのだろうか?
2020/09/15(火) 03:10:33.47ID:0TDTec2Q
言葉遊びには意味がない。
2020/09/15(火) 05:57:39.18ID:+pcRVQQ5
シェルはLinuxに必ずインストールされているが
Perlはインストールされてないものが実際に存在し使われている

話はこれだけだろ
2020/09/15(火) 08:21:54.14ID:QH5y4eUt
>>192
お前コミュ力なさすぎ…
perlがインストールされてなくてもおかしくないってレスに対して、
なんでシェルがなかったら画面真っ暗なんて回答になるんだよ
2020/09/15(火) 11:38:13.21ID:Ru6NgLud
このスレの人ってどうでもいい事になんでこんなすぐ必死になるの?
2020/09/15(火) 13:03:13.91ID:DboEcGlM
>>197
そしてなぜ黙ってればいいのに
こんなことを書き込んでしまうの?
2020/09/15(火) 13:59:53.23ID:y5g42ZKf
真面目で、相手の誤りを修正してあげたいから。
バカで、自分の誤りを認識できないから。

とか、人それぞれに理由があるやろ。
まあ、最大の理由はヒマだから。w
おまえもな。
200デフォルトの名無しさん
垢版 |
2020/09/15(火) 15:48:33.27ID:Yms7aROo
>>196
デフォルトというのはLinuxだったら、bashシェルがインストールされて起動するということ。PerlはLinuxの大半のインストーラが標準設定でインストールしてしまう。
2020/09/15(火) 16:02:10.84ID:0TDTec2Q
>>200
もとの話とつながってないぞ!w
やりなおし!
2020/09/15(火) 17:23:49.50ID:SdJ7XIqb
>>200
bashがインストールされてない環境はあるし実際によく使われている
2020/09/15(火) 18:41:25.99ID:DboEcGlM
これ何の話だっけ。
「シェルが存在せずにPerlなどが存在する環境」

「シェルは存在するがPerlは存在しない環境」
の比較?
いや,違うのかもしれないが,
だとするとPerlがどうとかいう話がどこから出てきたのか分からんw
2020/09/15(火) 18:52:17.80ID:SdJ7XIqb
これだろ?

172 名前:デフォルトの名無しさん[] 投稿日:2020/09/13(日) 21:07:19.31 ID:Z+zAoG6v [4/5]
Linuxをインストールしたら、Perlもデフォルトでインストールされることも知らないんだろうな。

200 名前:デフォルトの名無しさん[] 投稿日:2020/09/15(火) 15:48:33.27 ID:Yms7aROo [3/3]
>>196
デフォルトというのはLinuxだったら、bashシェルがインストールされて起動するということ。


perlもbashも入ってない環境が実際にあってよく使われている
2020/09/15(火) 19:01:42.43ID:1jncYIE/
極論が好きな人が居るねぇ
root権限でのパッケージ導入を依頼するでもOS/ディストリビューションの選定提案をするでもVMを生やすでもコンテナを建てるでも何でも使える手は使って、自分の手段と環境の中で一番楽な地獄を使うのがいい
手を尽くしてもシェルスクリプト以外使えないか、手を尽くすのがダルいならそりゃそのままシェルスクリプトを使うしかないのはそれはそう
ただ現代においてシェルスクリプトしかスクリプト言語を使えない上に新規導入もできない案件が多数派だし普通だよって言われると本当?って思うしその立場に同情するまである
2020/09/15(火) 19:14:03.32ID:0TDTec2Q
最近はコンテナ系がはやって、ガチガチの最小構成も現実的やろ。
昔なら、とりあえずあれこれ入ってるし入れるのがふつうだったが。
2020/09/15(火) 20:21:38.62ID:DboEcGlM
>>206
これ
2020/09/15(火) 20:36:21.55ID:Bkm+Im76
>>197
1つの道具しか使えない人や1つの道具への依存度の高い人は
その道具の必要性を下げる話や短所を指摘されると
無意識に自分の存在意義を否定された(攻撃された)と感じるので必死になる

特定の道具への精神的依存度の高い人たちが集まってる所ではよくあること
2020/09/15(火) 20:40:12.28ID:d9JYg3Jf
>>206
そういう時はGoで書いてもいいよね?
2020/09/15(火) 20:49:49.54ID:st0X4sID
コンテナ向け最小構成ならそれこそコンテナ生やせばいいじゃん…
2020/09/15(火) 21:05:24.21ID:0TDTec2Q
>>210
PerlコンテナとかPythonコンテナとかつくるの?
粗なの?密なの?w
2020/09/15(火) 21:06:37.35ID:0TDTec2Q
>>209
C++23で書こう!w

しかし、今さら使いやすそうになってきたな。。。
2020/09/15(火) 21:22:33.55ID:bVn8kGX2
>>209
ほんの数行で作れるシェルスクリプトの代わりに
goを使うのは手間がかかりすぎる
2020/09/15(火) 21:23:36.57ID:bVn8kGX2
なんでもPython、なんでもPerl、なんでもGoっていうのは
単に勉強したくないだけなんだろうなって思ってる
2020/09/15(火) 21:49:15.52ID:DboEcGlM
Goがやろうとしてる「どこでも動く!,依存性最小!」って
それまさにPOSIXシェルが数十年前から実践してることなんだけどねw
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 などの、サーバー構築・新規案件を重視する。
上流工程・新規案件の方が、価格交渉力が強いから
2020/09/15(火) 22:27:04.19ID:5aHfCmvT
>>208
なるほどね〜

コンプレックスの裏返しみたいなものか
2020/09/15(火) 23:33:10.49ID:Tmf/kgmE
「シェルスクリプトで書いていたもの」を他の言語に
置き換えることで楽になることなんてないと思っている

※最初からシェルスクリプトで書いてないものの話ではない
2020/09/16(水) 00:01:35.11ID:MNPDZagX
>>211
単芝生やしてるけどそれこそDockerHubにPythonのOfficial Image普通にあるよ
正直お互い想定してる状況が違い過ぎてるような気もするが
2020/09/16(水) 00:07:40.59ID:NJW1Qx1P
1. PythonやPerlが入ってない環境がある
2. シェルスクリプトで実現できる
3. PythonやPerl入れればいいじゃん!
4. PythonやPerlで書き直す
5. コードがシェルスクリプトよりも面倒になってる

ほとんどがこれ
シェルスクリプトで実現できることを
他の言語で書いたら余計面倒になる

面倒になるのに他の言語で書こうとするやつは
単に(効率的な)シェルスクリプトを勉強したくないだけ
2020/09/16(水) 00:18:53.14ID:fQIibdhg
はしゃいでるところに水を差して悪いけどシェルスクリプトに必要な心得ってなんですかね?
素人ながらとりあえず動く物は作れたけどifだらけのクッソ汚いコードなんで修正したい
オプションもgetopts知らずにifと[[でなんとかしてる
bashの基本は押さえたけどLinuxの常識までは網羅できてないんで
2020/09/16(水) 00:26:37.24ID:NJW1Qx1P
ifだらけだからクソ汚いってことにはならない

もしキレイなコードとやらを知ってるのであれば
それをシェルスクリプトでやればいいだけ
2020/09/16(水) 00:40:05.89ID:BkyZoSl2
>>219
そりゃああるやろ。w
あるからなんなの?
コンテナのまま実運用で使うの?
2020/09/16(水) 00:41:31.46ID:67D9s6fy
ほんとに必死だね
よほどコンプレックスが強いんだろうな

シェルスクリプトに固執しないとダメな状況ってそうそうないだろうに
2020/09/16(水) 00:49:16.66ID:NJW1Qx1P
シェルスクリプトに固執っていうか、シェルスクリプトが最善な場合に
シェルスクリプトを使うってだけだよね
2020/09/16(水) 01:41:09.00ID:BkyZoSl2
>>224
スレタイが読めないの?w
どっちが固執してるんだか。。。
227デフォルトの名無しさん
垢版 |
2020/09/16(水) 02:44:08.53ID:0ZaEBr0v
>>221
入門UNIXシェルプログラミングという名著を読めばよい。
228デフォルトの名無しさん
垢版 |
2020/09/16(水) 02:45:36.69ID:0ZaEBr0v
>>226
シェルスクリプトと、コマンド、外部プログラムの呼び出しはシェルスクリプトではないからな?
229デフォルトの名無しさん
垢版 |
2020/09/16(水) 02:48:58.69ID:0ZaEBr0v
シェルのスクリプトだから、シェルスクリプトの構文だけの話をすると、このスレは過疎化すると思うぞ。
2020/09/16(水) 06:01:38.56ID:NJW1Qx1P
だからといって外部コマンドのオプションやら文法の話をしたって意味ない
そういうのはmanページ見ろで終わる話
2020/09/16(水) 10:12:38.47ID:+0jueX8G
シェルスクリプトにこだわることの是非はともかく,
このスレに住み着くのは理があるわけだけど,
一方でPythonやRubyに固執している人が
このスレに居座りつづける理由が不明。

このスレはシェルスクリプトのことを話すスレなんだから,
Perl,Python,Ruby,Goなんかにこだわってても
ストレス溜まるだけだと思うんだけど……。
しかも不毛だしw
2020/09/16(水) 10:14:49.79ID:+0jueX8G
>>229
過疎化してなにか問題あるか?
シェルスクリプトの構文で質問がある場合は
ageればいいだけだし,
技術系のスレは勢いがなくても一定数の閲覧があるんだから
それで全く問題ない。

もしかしてなんJとかその辺りと同じような考えで
「過疎化する」=「悪」みたいに捉えちゃってる?
2020/09/16(水) 10:33:38.10ID:+Zum6F6u
シェルスクリプトとPythonやRubyの使い方は全く違っていて
シェルスクリプトの代替にはならないんだよ

だってPythonやRuby言語がシェルになるかい?
そういうのもあるみたいだけど使わないだろ

lslの代わりにPythonやRubyの関数を使えってことだよ
やるかい?

シェススクリプトはそういう手作業の操作をスクリプトにまとめたもので
「手作業の操作」そのものであることに価値があるんだよ
2020/09/16(水) 10:34:04.05ID:+Zum6F6u
× lslの代わりにPythonやRubyの関数を使えってことだよ
○ ls -alの代わりに
235デフォルトの名無しさん
垢版 |
2020/09/16(水) 10:40:48.87ID:2aHyKEnC
シェルスクリプトを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない

だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦

不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
2020/09/16(水) 10:44:06.38ID:BkyZoSl2
>>235
シェルスクリプトを使ったほうがいいケースや使うべきであるケースを判断出来ないようなやつは技術力が低くて使えない

だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦

不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術への依存度を下げるといい
2020/09/16(水) 10:52:37.21ID:MNPDZagX
>>223
当然その他個別に必要な要素はDockerfileに書き出すけど、実運用でコンテナを使えるのがDockerHubやオーケストレーションツールを含めた現代コンテナ運用の強みだし革新性だと思ってるよ

なんていうか「シェルスクリプトの文法や仕様が嫌い過ぎてシェルスクリプト数行で済むものにも別の言語を導入して書こうとする1byteもシェルスクリプトを書きたくない人間」に対してシェルスクリプトの可搬性や有用性・必要性を説こうとしてる人と
「シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件がある人間」に対して別の言語や環境で扱うのも選択肢だよって説こうとしてる人が争ってる感
2020/09/16(水) 10:58:35.61ID:VpAz8kB7
格言「すべての道は、Vagrant に通ず」
Homebrew が、何十年も他の言語で書かれないわけ

つまり、システム構築運用は、できる限りRuby で書く。
シンプルなものに限って、シェルスクリプト
2020/09/16(水) 11:10:41.03ID:Uxf3IaQ5
このスレのおかげでシェルだけでWebサイト作れました!
RubyやPythonなんて学ぶ価値無いですね
2020/09/16(水) 11:36:55.73ID:+0jueX8G
>>235
PythonやRubyを使わないほうがいいケースや使うべきでないケースを判断出来ないようなやつは技術力が低くて使えない

だからリアルでは軽んじられる
その反動がネット上でのマウンティング合戦

不毛なマウンティング合戦を繰り返すスレを見たらリアルでは相手にされない人達だと思って反面教師にしつつその技術へ

こうですか? 分かりません!
2020/09/16(水) 11:38:45.59ID:+0jueX8G
いいかげん下らなくなってきたけど,ともかく
「シェルスクリプトにこだわるな! Python・Rubyを使え!」
という主張は同時に「Python・Rubyにこだわっている」わけなんだから,
いくら「こだわり」をバカにしてマウント取ったところで,
ものすごい勢いで自分に跳ね返ってくるだけっていうねw
2020/09/16(水) 11:58:19.63ID:sxVBKKDL
え、両方使いなよって主張じゃないの?
そういうレスした本人じゃないから知らんけど
2020/09/16(水) 12:04:24.33ID:+Zum6F6u
>>237
> 「シェルスクリプトの文法や仕様でウッとなってしまう

それってようするにオブジェクト指向言語にそまってて
関数型言語に抵抗があるやつと一緒なんだわ

パラダイムが同じならそれもわかるけど、シェルスクリプトは異なるパラダイムなので
単に異なるパラダイムのものをつけつけられないだけ
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が含まれなくなる (参考リンク)。

こうなる
2020/09/16(水) 12:39:23.56ID:BkyZoSl2
>>237
シェルスクリプト自体に文句があるのはしゃあない(つーか、ないヤツはおらんやろw)が、全否定したらこのスレではただのあらしでしかない。
さらに、最近の一部のヤツはとくにバカっぽかったからな。
2020/09/16(水) 12:41:43.36ID:0bH7BLR9
状況に応じて使う道具を変えなよって言われてるのに、PythonやRubyを持ち出して否定したがるのはそれらを使えないことへのコンプレックスが強いから

どの技術でもその限界や短所を理解してないやつが多ければ要注意
2020/09/16(水) 12:42:57.45ID:uLph0UBy
シェススクリプトへの文句というより
シェルスクリプトが改善されないことに文句がある
何年停滞してるんだ
248238
垢版 |
2020/09/16(水) 12:55:13.00ID:VpAz8kB7
ハーバード大学には、Ruby on Rails の授業がある。
他の言語だと、数年以上遅れて、その間にシェアを取られてしまうから

他の言語では、複雑さが並みじゃないから、簡単に作れない。
かなりの費用・期間が掛かるから、そういうプロジェクトを起ち上げられない

例えば、Ruby以外のプロジェクトで、半年過ぎると取りやめになる。
サーバー側言語では、Ruby, Go しか使われない
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 だって言われる
2020/09/16(水) 13:11:20.74ID:MNPDZagX
>>243
どこの誰の事を異なるパラダイムを受け付けられない人間としてるのか知らないけど、パラダイムが異なれば当然向き不向きがあるよね?
その上で私は
> シェルスクリプトの文法や仕様でウッとなってしまう嫌な部分が出てくるような複雑さ・処理対象・処理内容の、シェルスクリプトで扱うのにある意味不適な案件
っていう「シェルスクリプトのパラダイムに向かない作業」を話題の前提にしてる人が他の言語を提案してるんじゃないの?って話しかしてないのよ

「何らかの作業をシェルスクリプトのパラダイムに向かない作業だと感じるのは、そいつがパラダイムを受け付けないだけで不向きな作業だからではない」という可能性は間違いなくある
ただ可能性はあるけれど恒真とは思わない
私がシェルスクリプトに向いてない作業はあると思ってるから
もしあなたがシェルスクリプトに向かない作業なんてないと思ってるなら何も言わない
この先は気持ちの問題なので
2020/09/16(水) 14:56:05.79ID:+0jueX8G
ほとんどの人が「別にPythonでもRubyでもいいけど,
そうじゃない選択肢としてシェルがある」というだけの話をしてるのに

「いまだにシェルを使ってるのは時代遅れ!」
「シェルにこだわるな!Python・Rubyを使え!(こだわり)」
となるのはなぜなのか。

あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
主張をしてるのも問題。
2020/09/16(水) 15:03:48.26ID:BkyZoSl2
>>250
PerlにもPythonにもC#にも、別の文字ならC++にもある。
Rubyがえらいわけではない。
もうすでにあたりまえ。
2020/09/16(水) 15:06:08.22ID:BkyZoSl2
>>252
> あと一部の奴が「シェル最高!世の中にはこれしか要らない!」みたいな
> 主張
どれ?
対比でそう返しただけじゃないの。
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
2020/09/16(水) 19:16:11.22ID:PhvdJ7XH
>>255
全てに当てはまることだけど、理由が書いてないコーディング規約はクソ
2020/09/16(水) 19:59:30.26ID:YseoXyv4
そういやユニケージで作られた例のシステム、ユニケージを捨てて
全部作り直したそうだな
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
2020/09/16(水) 20:59:44.06ID:PhvdJ7XH
ユニケージはシェルスクリプトじゃないからなぁ
シェルスクリプトを使って作られたCOBOL用関数みたいなもん

ユニケージを使った途端、シェルスクリプト言語から
COBOL言語に開発スタイルが変わる
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ならぬ、空白区切りのファイル形式を使うという前提があって
そのデータ操作するためのコマンド群でしかないことに気付いた
2020/09/16(水) 21:16:09.82ID:PhvdJ7XH
ユニケージのコマンドに絶望した後
クソコマンドをまともにしてやろうと思ったが
クソな理由はコマンドではなくデータ形式だったので
どうしようもないというねw

データ形式を空白区切り前提にしなければ、
通常のシェルスクリプトで使うコマンドを使うことになるが
ユニケージのコマンドとは全く異なる仕様になる
直しようがない
2020/09/16(水) 21:31:53.79ID:fQIibdhg
一日やってるとか暇か
ユニケージを導入して後悔してるとこならあったぞ
https://www.hands-lab.com/tech/entry/5600.html
2020/09/16(水) 21:36:41.16ID:66kQJWEh
>>255
>a more structured language

↑ここがポイントだろうね
2020/09/16(水) 22:04:09.41ID:RIbUq78m
ポイント? なんでそう思ったの?
根拠がないから具体的ではないだけ
2020/09/16(水) 22:36:59.59ID:+0jueX8G
どうでもいいんですけど,
シェルスクリプト以外の話題なら他所でやってもらえません?
もちろんシェルスクリプトの存在論も含めて。

テンプレくらい読んでくれよな〜頼むよ〜
2020/09/16(水) 22:48:58.53ID:AIq8Iw+F
長々とどうでもいいこと書き綴ってスレ荒らしてたのお前じゃん
2020/09/16(水) 22:56:04.59ID:BkyZoSl2
>>264
わかる人にはわかる。
わからない人のほうがその理由を内省するべき。

ただ、Bashは関数と連想配列のおかげで、それなりの構造化はできてるな。
逆に言うと、よっぽどややこしいデータ構造を組むのでなければ、シェルスクリプトでも可、ってことか。w
2020/09/17(木) 05:40:41.40ID:arhYEtgP
>>267
分かる人が理由を書くべきだろ
こういう意味不明なこと言うから信用されないんやで
2020/09/17(木) 06:53:22.12ID:7lkKgDUb
まあ結局
「シェルスクリプトでおかしな書き方をするやつは
Pythonで書こうがRubyを使って メタプログラミング() をしようが
下手な書き方をすることに変わりない」
ってことよね。
2020/09/17(木) 07:33:41.05ID:hnEDQboZ
シェルスクリプトから○○言語に変更したってやつは
変更した結果どうなったのか、そのコードを見てみたいんだが
シェルスクリプトで一体何をしていたのか?
271デフォルトの名無しさん
垢版 |
2020/09/17(木) 09:41:38.06ID:v24DPghR
Pythonさえやっておけばシェルスクリプトやる必要ないってことじゃないですかやったー!
2020/09/17(木) 09:46:01.87ID:HvzSxf7x
Pythonの関数(特別に作られたものではなく標準関数)を使うという前提の
シェルが作れるものなら作ってみて欲しいね
Python以外でもいいけど
2020/09/17(木) 09:53:36.15ID:d9Y9RH6u
>>268
べつに信用せんでもええで。w
相手にしないだけの話やから。
2020/09/17(木) 10:32:54.56ID:chlfrU3v
>>273
信用されないというのは「その他大勢の人から」という意味だよ
>>268の内容は俺がお前を信用しないという宣言じゃなくて
その他の人に対して、お前は信用に値しないという宣言をしている
2020/09/17(木) 10:53:19.56ID:PVLBY2eY
>>267
POSIX準拠じゃないから使えないねw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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