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

■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
シェルスクリプトに関する総合スレッドです。

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

前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/

関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
2021/04/04(日) 13:30:29.59ID:rmqTiba5
>>288
all : task1 task2 task3
task1: prepare
task2: prepare
task3: prepare
prepare :

という構成で、タスクは並列可、prepareは超重い、となると、makeが最適解やろ。
2021/04/04(日) 15:51:18.30ID:Y9bxvDcN
>>295
じゃお前が具体例だしたら?
想像できるって言ったんだから言えるよね
それとも口だけ?
2021/04/04(日) 15:53:37.76ID:Y9bxvDcN
>>296
task1 &
task2 &
task3 &
wait

でおわりやん
2021/04/04(日) 16:57:04.88ID:WsuFFQM2
狂犬
2021/04/04(日) 19:44:32.02ID:rmqTiba5
>>298
勝手に終わりにしとるだけやん!w
2021/04/05(月) 04:28:41.70ID:gsx4ZFoJ
終わりじゃない理由でもあるの?
2021/04/05(月) 06:19:20.07ID:3jUc8O+L
prepare無視して勝手に終わりにしてるってとこだろ
無視というかただわかってないからだろうけど
2021/04/05(月) 06:33:48.44ID:Ir9xQslo
そう言われてから出すとしたら等価ではないのをまた出しそうでだな
304デフォルトの名無しさん
垢版 |
2021/04/05(月) 08:37:32.95ID:gsx4ZFoJ
その前にprepareが何なのか言えよ
ただ実行する以外に何が違うのか書いてないのに
あとつけで違うとか言うなよ
2021/04/05(月) 08:49:07.73ID:Ir9xQslo
わかってないこと多すぎなのになぜもそう偉そうなのか
2021/04/05(月) 09:09:31.93ID:Ir9xQslo
>>304
prepareはprepareだろう。その意味意図がわからないのはちょっとなあ
知らないのにそんなに偉そうなのは恥以外の何物でもない、恥の上塗りだな
>>296がそう意図してるのかは不明だが、>>296のでできるのは>>298だけじゃないからな
親切なヒントやったぞ。さあ、どうぞ
2021/04/05(月) 10:59:23.34ID:gsx4ZFoJ
>>306
じゃあそれ以外の意図があるならそれを書いてくれ

task1関数、task2関数、task3関数 の一行目に
prepare関数を実行すれば終わりだろ?
2021/04/05(月) 11:01:51.92ID:gsx4ZFoJ
複数のタスクを指定したときにprepareを一回しか実行しないというのであれば
all関数の最初に一回だけ書いてもいいし
フラグを使って一回だけ実行するようにしてもいい(たった一行で実現可能)
動かしたい通りに書けば良い
2021/04/05(月) 11:04:18.21ID:i9PX2oQn
気持ち悪いスレだなあ
2021/04/05(月) 11:04:54.93ID:gsx4ZFoJ
leftpad事件と同じ匂いを感じててしまうな
われわれ(俺除くw)はこんな簡単なコードも書けなくなってしまったのか?
2021/04/05(月) 11:22:30.40ID:i9PX2oQn
>>284
棲み分けられるか正直疑問だし、御高説垂れにくい初心者スレ的なのはどうだろうか
2021/04/05(月) 11:52:33.18ID:qeGrbie0
>>308
そんなクソコードに頼らずとも使えるのがmakeなんやで!w
2021/04/05(月) 12:42:09.26ID:gsx4ZFoJ
>>312
makeはすぐ複雑化するよ

http://quruli.ivory.ne.jp/document/make_3.79.1/make-jp_16.html
C. 複雑なMakefileの例
ここにGNU makeプログラムのmakefileがあり、それは比較的複雑なものです。
2021/04/05(月) 12:43:47.04ID:gsx4ZFoJ
このMakefileを見て以下の情報を読み取るのは困難

> ここでは、最初のターゲットなのでデフォルトのゴールは‘all’です。
> この makefileの興味深い特徴は、‘testpad.h’がtestpadプログラムに よって
> 自動的に作成されるソースファイルである点です。そして、その プログラム自身は‘testpad.c’のコンパイルによるものです。

> ‘make’あるいは‘make all’と入力することでmakeが実行可能な ‘tar’、
> テープアクセスを提供する‘rmt’デーモン、‘tar.info’の Infoファイルを作成します。

> ‘make install’と入力すると、‘tar’、‘rmt’、‘tar.info’の 作成だけでなく、それらのインストールも行ないます。

> ‘make clean’と入力すると、makeは‘.o’ファイル、 ‘tar’、‘rmt’、‘testpad’、
> ‘testpad.h’、そして ‘core’ファイルをすべて削除します。

> ‘make distclean’と入力すると、makeは‘make clean’と同じ 削除以外に‘TAGS’、
> ‘Makefile’、そして‘config.status’ファイルも 削除します。
> (明らかではありませんが、このmakefileと‘config.status’は configureプログラムに
> よって作成されたもので、これはtarの 配布プログラムに含まれています。しかし、ここではそれは表示されていません。)

> ‘make realclean’と入力すると、makeは‘make distclean’の ときと同じ削除を行ない、
> さらに‘tar.texinfo’から生成されたInfoファイルの 削除も行ないます。

> さらに、ここでは、配布キットを作成するためのターゲットsharと distも示されています。
2021/04/05(月) 12:52:05.95ID:4wNso/hW
Makefileが複雑化するのはビルドする工程が複雑化しているという別の問題の顕在化でしかないでしょ

それと同じことができるシェルスクリプトを書くのとMakefileを書くのとどっちが簡単かって話じゃないの
2021/04/05(月) 13:07:34.94ID:i9PX2oQn
話題に挙がったついでだけどそこでtsortよ
ルールだけ抜き出して可視化しリファクタリングしなさい
2021/04/05(月) 13:09:49.69ID:gsx4ZFoJ
>>315
複雑なビルド工程をMakefileだと
・依存関係の定義として記述するのが正しいとされ、シェルスクリプトとしての柔軟性もないので
細切れのタスクが多数できてしまい、見づらくエスケープされたシェルスクリプト等を埋め込むことになる
と言ってます。

Makefileからシェルスクリプトを呼び出すんじゃなくて
シェルスクリプトから(必要な場合に必要な所だけ)makeを呼び出したほうがいいんだよ

そして大抵はmakeはいらない。多くの人がタスクランナーとして使ってるのはそういうこと
本当にmakeが必要なのは、C言語のような古い言語で、ヘッダファイルとソースファイルから
オブジェクトファイルを作ってリンクするような作業の部分だけでしょ?

つまり>>314に書いてあるタスクの殆どはmakeを使う必要がないってこと
2021/04/05(月) 13:28:19.87ID:qeGrbie0
>>317
見辛いシェルスクリプトコードならファイルにしたらええのに。w
2021/04/05(月) 14:41:15.13ID:VlUSW8N+
そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...

あと Makefile があれば make install や make clean が存在するっていうのが分かるのがいいんだよ
プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
2021/04/05(月) 15:23:18.33ID:gsx4ZFoJ
> そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...

そうだよ?タスクランナーではなく依存関係を定義するために作られたのがmakeだよ
最初からそう言ってるじゃん
2021/04/05(月) 15:26:11.21ID:gsx4ZFoJ
> プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?

俺はそれよりもmakeで実行できるタスクに何があるのかわからんのだがw
make --helpした所で表示されないしな

Makefileみればわかるって?それはソース見ればわかるって言ってるようなもんだし
依存関係を見たいんじゃなくて、makeで直接実行することを目的としたタスクの一覧が見たいんだよ
2021/04/05(月) 16:03:10.00ID:r6jGhjiZ
>>300-302から自ら>>304と馬鹿な自分を自己紹介しておいてw
何でそうも偉ぶりたいのか。まともな神経あったらそんな態度は取らないわなあ
さすがだな
2021/04/05(月) 16:07:12.70ID:rGWHafb6
>>322
「ただ実行する以外に何が違うのか書いてない」に
対してレスはなにかありましたか?
それが答えだよ。
2021/04/05(月) 16:13:51.85ID:r6jGhjiZ
そのレスはコーダーと呼ばれる人種っぽいレスだな
いや、普通の日本語の文もそうだが読み取る能力が欠けてるだけだな
それは矮小化した自分に都合の良い条件でしか考えられないからだな
プロジェクトwwとか関係ないよ、ソース読めないといってるのと同じだな今回は
2021/04/05(月) 16:14:36.43ID:rGWHafb6
そんなレスは誰も求めてないよ
2021/04/05(月) 16:17:39.09ID:r6jGhjiZ
懲りずに
矮小化した自分に都合の良い条件
かよwそれこそ誰も求めてないぞ
2021/04/05(月) 17:28:04.19ID:qeGrbie0
>>321
ターゲットを調べたければ、sedでも使ったらすぐにわかるやん。w
2021/04/05(月) 20:09:00.48ID:nAjTTeFT
気持ち悪い煽りだな
2021/04/05(月) 20:33:09.06ID:Oftt9CcS
ルビキチ臭
2021/04/05(月) 21:07:57.60ID:rGWHafb6
>>327
ターゲットじゃなくてタスクを見たいんだってw
例えばシェルスクリプトなら--helpして分かりやすいusageが
表示されるように作るだろ?

sedではそのわかりやすさがない。頑張れば作れるだろうが
Makefileでそんなのが用意されてるのみたことないよ
331252
垢版 |
2021/04/05(月) 21:19:53.87ID:2g7RifS+
Ruby のタスクランナー、Rake, Thor などでは調べるのも簡単

thor list,
thor タスク名

などで、タスクを表示できる

タスク定義の仕方も決まっているので、保守しやすい。
シェルスクリプトでは、各人で書き方を変えるから、保守できない
2021/04/05(月) 21:21:58.48ID:VlUSW8N+
こいつがまともなレスしてるの初めて見たぞ... 明日も雨か?
2021/04/05(月) 21:22:55.94ID:qeGrbie0
>>330
自分で書く話なら、helpターゲットをつくったらええがな。w
実際、そういうmakefileを、おまえは見たことがなくても、ワイは見たことがあるで?
2021/04/05(月) 22:30:31.71ID:Oftt9CcS
あいつは何を言いたい何をしたいんだかな
何をしたいのかは「勝ちたい/負けたなくない」wwなのは明白だったか
2021/04/05(月) 22:47:11.83ID:rGWHafb6
>>333
だから結局そうなるから
Makefileに利点がないんだって
中身が複雑になる。そして利点がない。
2021/04/05(月) 22:48:23.80ID:rGWHafb6
>>331
thorのコードのほうが複雑になる

シンプルにしておけと言われるのに
なぜか複雑になる
2021/04/05(月) 22:56:26.91ID:Oftt9CcS
だから結局そうなるってwこいつの頭の中身はどうなってんだよ、ほんとに
利点を争ってるwのはそこじゃないだろうにな
「勝ちたい/負けたなくない」wwすぎて誤魔化しがカオス
2021/04/05(月) 22:59:22.09ID:Oftt9CcS
まあ、チャンピオンはこうだからチャンピオンなわけで、誰も勝てないわな
さすがチャンピオン
適当に諦めて試合放棄してもいいよ、挑戦者
2021/04/05(月) 23:00:22.41ID:rGWHafb6
それなら勝ち負けじゃなくてmakeの利点・欠点の話をすればいいじゃん
俺はずっとmakeの話をしてるんだが、お前は俺の話しかしてないじゃん
2021/04/05(月) 23:02:35.31ID:rGWHafb6
もちろんシェルスクリプトのスレだから
makeよりもシェルスクリプトの方が良いっていう話ね
あと今更言わなくてもわかると思うけど、タスクランナーとして使う場合
2021/04/05(月) 23:03:21.85ID:Oftt9CcS
お前に無駄な挑戦はしないww観客がヤジるくらい許せよ、チャンピオンなんだから
てか「勝ちたい/負けたなくない」wwはお前だけだぞ、言っておくが
すんなり「それなら勝ち負けじゃなくて」って言葉出るのな、さすがチャンピオン
2021/04/05(月) 23:03:56.47ID:VlUSW8N+
タスクランナーとして使う場合の話だったのか、それなら好きなのを使えばいいよ...
2021/04/05(月) 23:20:17.04ID:i9PX2oQn
ほんそれ
原理主義者ってこえーわ
2021/04/05(月) 23:23:23.69ID:rGWHafb6
>>341
自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない

>>342
最初にそう書いてるんだが
makeからシェルスクリプトを呼び出すとか、Makefileにシェルスクリプトを埋め込むんじゃなくて
シェルスクリプトからmakeを呼び出すほうがいい。もちろんmakeが必要な場合

タスクランナーとして例えばinstallとかcleanが欲しい場合
シェルスクリプトの方がシンプルでわかりやすく書けるわけで
本来makeでやることじゃない
2021/04/05(月) 23:26:14.86ID:Oftt9CcS
>>344
>自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない
お前自体が逸脱することしょっちゅうあるくせに
昔からなんか困ったらw(黙らせたいとかw)そう言うよなってしか感じませんよ
2021/04/05(月) 23:37:33.37ID:rGWHafb6
な?またシェルスクリプトの話題が入ってないやろ?そういうとこやで
2021/04/05(月) 23:44:04.08ID:Oftt9CcS
>>342は「好きなのを使えばいい」だろう
なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
そういうのは「好きなのを使えばいい」とは言わないだろう
>>342はどっちでもいい、どちらに優位とかは本人次第での「好きなのを使えばいい」だろうと思われるが
だったら、チャンピオンらしいさすがカオスな世界観

未だにMakefileの利点と挙げられてるがのがわかってないなって感じ
簡単に言うと定型フォーマットでルールを記述、オレオレロジック書く必要もないてとこかと思うんだけど、言ってるのは
何故全く理解できないのかなんだか不思議でたまらないカオスな世界

>>346
>>345
な?同じことを平気で何故か言えるだろ?
2021/04/06(火) 00:33:09.03ID:+n99AGjS
> なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
> そういうのは「好きなのを使えばいい」とは言わないだろう

補足しておくな

最初に【タスクランナーの話だと】そう書いてる
そして【タスクランナーの話だと】シェルスクリプトの方が良いと最初に書いてる

何の話なのかをあやふやにして、
他人が言ったことをすり替えようとするのは
お前がよく使う手だ。(何度も指摘されてるだろ?)
2021/04/06(火) 00:34:38.03ID:+n99AGjS
タスクランナーはシェルスクリプトが良いと最初に言ってるのに
なんで好きなものを使えばいいという話につながるのかわからん

最初から「好きなものを使えばいい」とは言ってないだろう
文章を読めないのか、話をすり替えるのが目的なのか
2021/04/06(火) 00:39:08.04ID:+n99AGjS
タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は

task:

↑これだけなんだよ

そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ

task: であれば
task() { と書いても数文字増える程度で大差なく、

一番重要なタスクの処理は、

task() {
 ここにコマンドやシェルスクリプトを
 エスケープせずにそのまま書けるというメリットが有る
}

もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要

あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り

# お前に必要なmakeコマンドの実装
for target; do "$target"; done

たったこれだけ
2021/04/06(火) 00:53:19.81ID:WV1MWJne
>>348,349
単に「タスクランナーとして使う場合の話だったのか」の部分だけを言っているのか
そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
あんな短文を分けて肯定否定してるなんて、わかりづらいわっ
まあ、そこまで読めなかったのは俺にも責はあるけどな
(何で食いついてるのかと思ったら何となく理解した。アレだからだろな、やっぱ)

だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。他に誰もいないだろう(せいぜい好きなの使えばいいというのだろう、他のも勧めてるのも居るしなw)
そしてシェルスクリプトがいいと言ってる理由がことごとくアレwされてるだろうに、自覚ないようだけど。そういうとこやで(ww)

あとな、シェルスクリプトの話を「してほしい」wなら、
少しはその自分のカオスな世界観wを他人にもわかるぐらいに直しないさいな
まあ「してほしい」wんじゃなくて黙らせたいだけなんだろけど、自ら行ってもいるんだからな
変わらないんだろうから、お前のルールなんて知らんとだけ言っておく
2021/04/06(火) 00:53:50.60ID:WV1MWJne
(まだやってる。懲りないやつだな)
2021/04/06(火) 00:55:43.56ID:+n99AGjS
> そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ

知らねーよ。俺が言ったセリフじゃないんだから
言ったやつに言えよ

俺は、タスクランナーとして使う場合は
シェルスクリプトの方がいいとしか言ってない


誰が言ったかを理解してないのか?
それともわざとあやふやにして
全部俺のせいにしようとしてるのかどっちだ?
2021/04/06(火) 00:56:56.22ID:+n99AGjS
> だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。

だからなんなんだろう?

技術の話をせーや
俺はシェルスクリプトの話をして、シェルスクリプトの方が優れてると言ってる
お前の反論は、そんなこと言ってるのはお前だ!で
技術的な話が全く入ってない
2021/04/06(火) 01:05:48.82ID:WV1MWJne
> そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
だよ。そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
>あんな短文を分けて肯定否定してるなんて、わかりづらい
文を書いたのはお前な、お前の責もあるのは当然だろう。元文を書いた人は何にも関係ないぞ、関係ないのは明らかだろうに、あんなわかりやすいw文
2021/04/06(火) 01:07:35.33ID:WV1MWJne
>>351の中と後半に書いてる
わかってないなら、中と後半、そして最後の一文を繰り返すだけだな
2021/04/06(火) 01:08:02.78ID:+n99AGjS
× そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
○ そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ

↑文を書いたのはお前だろw
まず自分の責任を認めろ
2021/04/06(火) 01:09:30.57ID:+n99AGjS
>>356
こんな簡単なこともわかってないのか?

シェルスクリプトの話をしろと言ってるのは
シェルスクリプトのコードとMakefileのコードの
比較の話をしろって意味だよ

>>351にコードなんて一つも書いてないだろ
ああ、言い訳はいい。
次のレスは「最後の一文」ではなくコードを書け
2021/04/06(火) 01:11:42.44ID:WV1MWJne
>そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
わざわざ×○整形してるくせに、次のは読まないんだな
チャンピオンとしては受け取れないのか...w

>>358
すでにされてることを何で繰り返さなければならないのか
お前のルールなんて知らんwオレオレルール押し付けすぎだろう
2021/04/06(火) 01:12:56.30ID:+n99AGjS
シェルスクリプトかMakefileのコードは?
2021/04/06(火) 01:13:32.15ID:+n99AGjS
反論がないからもう一度書くね

タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は

task:

↑これだけなんだよ

そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ

task: であれば
task() { と書いても数文字増える程度で大差なく、

一番重要なタスクの処理は、

task() {
 ここにコマンドやシェルスクリプトを
 エスケープせずにそのまま書けるというメリットが有る
}

もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要

あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り

# お前に必要なmakeコマンドの実装
for target; do "$target"; done

たったこれだけ
2021/04/06(火) 01:16:39.85ID:WV1MWJne
カオス化がまた一層酷くになったwので、>>351の最後を繰り返すだけだぞ
続けて欲しい、技術的な話をしたいwだったら変わってみような
(そういえばチャンピオンのもう一つの武器は繰り返し言い張るだな
俺の繰り返し言い張りwも受けてみてほしいものだw)
2021/04/06(火) 01:18:01.12ID:+n99AGjS
>>361に何一つコメントできないくせにレスだけはするんだよな
自覚したほうがいいよ
2021/04/06(火) 01:21:16.72ID:WV1MWJne
「しない」という選択肢もあるんだよ。自覚も何も「わざと」なw
だから、そのカオスの原因を直しなさいよ、「してほしい」wなら
2021/04/06(火) 01:32:38.75ID:TYYwd7pV
>>335
シェルスクリプトでコマンドライン引数処理をするよりも、makefileにhelpターゲットを追加するほうが億倍ラクやで?
複雑になるのはシェルスクリプトのほうや。w
2021/04/06(火) 01:37:47.42ID:TYYwd7pV
>>361
前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
&でbg処理したらええというもんではない。そもそも、並列実行していいかどうかも未定義やし。

まあ、それがプログラムとしてはふつうなんやけど、makeに比べると、makefileがルールとして記述するだけやから、そりゃあかなわんわなあ。w
2021/04/06(火) 01:39:22.54ID:bGyEcdYQ
億倍ww
シレっと煽るねえ(もしくはウィット入れるねえ)
だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
2021/04/06(火) 02:36:53.08ID:Zjnr+Ca7
>>316
gnuのtsortは-fで視点グリグリできないからあかんね、珍しくBSDの方が便利なコマンド
2021/04/06(火) 05:35:04.17ID:MTiaA6bM
>>365
> シェルスクリプトでコマンドライン引数処理をするよりも、makefileにhelpターゲットを追加するほうが億倍ラクやで?
億倍ラクになるかやってみたら?

じゃあmake.sh版。makefile版よろしくw

#!/bin/sh
target1() { # ターゲット1
 echo "target1"
}
help() { # ヘルプ表示
 sed -n 's/('') {//p' "$0"
}
for target; do "$target"; done

$ ./make.sh help
target1 # ターゲット1
help # ヘルプ表示

(やる前から同じように書けるはずだって気づかないもんですかねぇ)
2021/04/06(火) 05:40:09.71ID:MTiaA6bM
>>366
> 前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
何が面倒かが書いてない

> &でbg処理したらええというもんではない。
ええというもんではない当理由が書いてない

> そもそも、並列実行していいかどうかも未定義やし。
それはmakeも同じ。makeの並列実行に夢見すぎじゃね?w

Does “make -j” always produce correct result?
https://stackoverflow.com/questions/45453225/does-make-j-always-produce-correct-result
> 依存関係が正しく設定されていないと、間違った順序で処理が行われ、
> ビルドエラーが発生する可能性があります。make通常、複数回実行すると解決します。
> ただし、最善の解決策は、依存関係をリファクタリングすることです。
> それが不可能な場合は、最初から並列makeを実行しないでください。

> 私は古いgccベースのコンパイラ(?1997)を使用していますが、-j2以上でビルドすると、
> スレッドセーフではないかのようにエラーが発生します。

Installation using "make -j" error
https://github.com/espnet/espnet/issues/392

error when run "make -j 12"
https://github.com/google/ihmehimmeli/issues/2
2021/04/06(火) 05:42:39.64ID:MTiaA6bM
>>367
> だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
安心しろ。億倍はネタだとわかってるぞ
でも数行増えてしまうと考えてるんだろう
実際には0倍だっただけどな
2021/04/06(火) 07:06:03.54ID:dc8Xc+ex
>例えばシェルスクリプトなら--helpして分かりやすいusageが
--helpじゃないのか
シェルスクリプトに拘ってるのにスタイルは簡単に捨てるのか
make help
は、それもスタイルだからな。何でもアリなら、何でもアリでええやん
2021/04/06(火) 07:18:08.96ID:MTiaA6bM
こう変えるだけで変更できる簡単なツッコミはいらんて

for target; do "${target#--}"; done
2021/04/06(火) 07:34:25.05ID:dc8Xc+ex
言われたら対応してるだけだな
--target1
は、許すんだな。まさかそんな小手先で来ると思わなかったぞw
何でもアリに変わりないやん
2021/04/06(火) 07:48:24.00ID:dc8Xc+ex
自分の目的なら色々自分スタイルでいいと自ら自己紹介してるのに、他の人がするのは絶対許さないというカオスぶり(というより単に自己中かw)
やっぱりカオスだな、技術的なことwは無駄だなと思わせるだけだなっていう
2021/04/06(火) 08:23:20.52ID:MTiaA6bM
お前単に自分が気に食わないって言ってるだけじゃんw
2021/04/06(火) 08:38:17.44ID:dc8Xc+ex
「一貫性のないのや何もわかってない理解してなさそうなのに」偉そうに振る舞うのに「一貫性のないのや何もわかってない理解してなさそうなのに」部分にヤジ入れてる感想入れてるwだけだな
自分が気に食わないってしか捉えられないお前の思考が浅い(すぐ上のでも顕著なようにw全てに言える)だけだな
まあ単にそう貶めたいだけなんだろうけど、チャンピオンとしては
2021/04/06(火) 08:41:47.63ID:MTiaA6bM
一貫性がないとかいう主張の中身が、お前が気にいるかどうかでしかない
例えば、git helpでgit --helpと同じヘルプが表示される
2021/04/06(火) 08:47:35.34ID:dc8Xc+ex
--helpってお前が言い出してるんだけどな
--helptってお前自身そう思ってたくせに
そういう一貫性だよ、お前自身のな

ちなみに、git helpのはhelpが「gitのコマンド」だからだぞ
なんか残念でしたwと思わないこともない
2021/04/06(火) 08:48:45.39ID:MTiaA6bM
docker helpやgcloudもだな。
サブコマンド系は--helpがhelpサブコマンドになってるのはよくありそう
(実装者の立場で考えるとそれが合理的なのは理解できる)
2021/04/06(火) 08:50:17.32ID:MTiaA6bM
>>379
つまりお前は「俺に文句を言ってる」だけで
--helpでもhelpでも「コードは問題ない」って言ってるじゃん

お前一体何と戦ってんの?コードじゃなくて俺だよねw
2021/04/06(火) 08:51:43.12ID:MTiaA6bM
> ちなみに、git helpのはhelpが「gitのコマンド」だからだぞ

--helpがhelpコマンドへ転送されるのはよくある実装だから
>>373でそうしたよね?
2021/04/06(火) 08:53:36.32ID:dc8Xc+ex
なんか一生懸命探してんな、今更
なんか一生懸命辻褄あわせしようとしてる感じでしかないなあ。いつものw

戦うwwwさすがチャンピオン。>>377って言ってるのに、いつも戦ってるチャンピオンは、ホントにもうw
2021/04/06(火) 08:55:42.05ID:dc8Xc+ex
(短時間、連投来たなあ。さすがいつも戦ってるチャンピオンw)
2021/04/06(火) 08:58:18.00ID:MTiaA6bM
やはりレスの相手はコードではなく俺
2021/04/06(火) 09:04:16.76ID:dc8Xc+ex
>>382
>--target1
>は、許すんだな
は?
そういう見え透いたカオスなこと言うんだから、チャンピオンは
なんかhelp(プログラムでのコマンドがある場合)ではしゃいでるwようだけど、自己都合でしかないよw

>>385
何言ってるの?>>377って言ってるでしょ
当然お前だよ。ただし「気に食わない」とか「戦う」じゃないよ。理解できないの?
2021/04/06(火) 09:10:08.38ID:MTiaA6bM
それでコードに問題あるの?問題ないの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
2021/04/06(火) 09:10:59.23ID:dc8Xc+ex
そう言うお前は問題ないと思ってるの?
2021/04/06(火) 09:13:34.38ID:MTiaA6bM
質問に質問で返すな
2021/04/06(火) 09:18:50.92ID:MTiaA6bM
質問に質問で返す人の心理について
https://mental-kyoka.com/archives/6137

> しかし、聞かれたくない事を聞かれている不快感を放置することができず、
> 婉曲的ではありますが質問に質問で返すという行為により
> 「その質問の内容は不愉快だからやめてくれない?」と暗に
> 伝えているのだと考えることもできます。
> いわば、「逆ギレ」の一種と表現するのが適当かもしれません。

> また、後述するように逆に質問する行為がうまく行き、
> 会話の主導権を自分が握ることができれば、
> 今度は自分が相手に質問責めをして、今まで受けてきた
> 質問に対する鬱憤を晴らすことも可能です。

なるほど
2021/04/06(火) 09:19:45.59ID:dc8Xc+ex
ここ大事だから。お前から聞いてきたんだから、お前が自ら答える責もあるだろう
ホント、自分は例外だな。いつものことだが

もちろんお前(に限らず)がそうしようがお前の勝手だから問題だとは思わんよ
他人のやり方にアレコレダメ出しするお前はどう答えるのか当然先に聴きたくなるのは当たり前じゃん
馬鹿な墓穴掘り質問だから尚更wいつもの浅知恵レスだから尚更尚更、質問したくなるじゃん
2021/04/06(火) 09:20:32.67ID:dc8Xc+ex
(また変な浅知恵、何とか貶めたいだけwのをわざわざ探してきてんな)
2021/04/06(火) 09:20:36.35ID:MTiaA6bM
あ、ごめん。先に「質問に質問で返す人の心理について」について読んじゃったw
2021/04/06(火) 09:20:55.48ID:MTiaA6bM
ではもう一回聞くね

それでコードに問題あるの?問題ないの?
その解決策は自分で思いつけないの?
いいからコードの話をしなよw
2021/04/06(火) 09:21:53.66ID:dc8Xc+ex
戦うチャンピオン、スカってるぞ。頑張れw
2021/04/06(火) 09:23:49.17ID:MTiaA6bM
※ コードの話をしろよといった次のレスがやはり俺の話
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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