シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その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/
探検
シェルスクリプト総合 その36
■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
270デフォルトの名無しさん
2021/04/03(土) 01:06:37.77ID:r67/WY6G >>269
適切な順番に並べたのなら書き直さなくていいよ、適切に並べる為の仕組みの話で
あと簡潔というのは各記述の話であってコード全体が簡潔になるという意味ではないぞ…むしろトポロジカルソート直列化後のコードは一般に冗長になる
適切な順番に並べたのなら書き直さなくていいよ、適切に並べる為の仕組みの話で
あと簡潔というのは各記述の話であってコード全体が簡潔になるという意味ではないぞ…むしろトポロジカルソート直列化後のコードは一般に冗長になる
271デフォルトの名無しさん
2021/04/03(土) 01:14:42.13ID:r67/WY6G つーかいい実装無いか尋ねてる俺になぜ聞く…
独特のレス見るに月末に初心者イビってた奴か?
独特のレス見るに月末に初心者イビってた奴か?
272デフォルトの名無しさん
2021/04/03(土) 01:14:50.26ID:YB/KO+42 適切に並べる為の仕組み?
どの順番で実行すべきかなんて人が知ってる
どの順番で実行すべきかなんて人が知ってる
273デフォルトの名無しさん
2021/04/03(土) 01:16:18.50ID:r67/WY6G などとautotoolsもcmakeもわけわかんねー事をほざいでおります
274デフォルトの名無しさん
2021/04/03(土) 01:18:13.59ID:r67/WY6G タイポしちゃった、わけわかんねー、の前に、"も理解できないオッサン"を補って読んでください
275デフォルトの名無しさん
2021/04/03(土) 01:20:35.91ID:YB/KO+42 >>273
autotoolsもcmakeも「発生した問題」を解決するためのツールであって
問題が発生してないのに、使うものではないと言ってます。
タスクランナーごときで問題が発生しますか?
まさにKeep it simple stupidの話だよ
シンプルにしておけ
autotoolsもcmakeも「発生した問題」を解決するためのツールであって
問題が発生してないのに、使うものではないと言ってます。
タスクランナーごときで問題が発生しますか?
まさにKeep it simple stupidの話だよ
シンプルにしておけ
276デフォルトの名無しさん
2021/04/03(土) 01:34:22.75ID:r67/WY6G277デフォルトの名無しさん
2021/04/03(土) 01:37:02.86ID:YB/KO+42 > 問題が起きないようアルゴリズムに任せるとこは任せましょう
無理です。どちらにしろ人間が依存関係の情報を書かなければいけません。
単に書き方が変わってるだけです。
無理です。どちらにしろ人間が依存関係の情報を書かなければいけません。
単に書き方が変わってるだけです。
278デフォルトの名無しさん
2021/04/03(土) 01:41:25.51ID:r67/WY6G そういう意見はここじゃやくてそれらのツール、あと
>>252
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
のメーリスにでも投稿してくれ
もしかしたら世の役に立たないこともないかもしれん
>>252
Jenkins,
Ruby のRake, Thor,
JavaScript のnpm scripts, gulp
のメーリスにでも投稿してくれ
もしかしたら世の役に立たないこともないかもしれん
279デフォルトの名無しさん
2021/04/03(土) 01:44:38.22ID:YB/KO+42 ここまでレスの応酬を続けておきながら、
今更そんなレスをするっていうのは
これ以上言い返せなくなったからということなんですね
今更そんなレスをするっていうのは
これ以上言い返せなくなったからということなんですね
280デフォルトの名無しさん
2021/04/03(土) 01:44:39.70ID:r67/WY6G 昨日結構賑わいあって久々に良い感じの雰囲気だったのに、ID真っ赤にして空気乱してすまんかった
大人げない、反省
大人げない、反省
281デフォルトの名無しさん
2021/04/03(土) 01:45:59.57ID:ANUlY9KL282デフォルトの名無しさん
2021/04/03(土) 01:53:31.65ID:YB/KO+42 >>281
お前が、俺の勝ちに見えるのなら、そうなんだろうな
お前が、俺の勝ちに見えるのなら、そうなんだろうな
283デフォルトの名無しさん
2021/04/03(土) 01:56:49.08ID:K2jZ2c+V こいつが絡むといつもこう、目的が↑これが冗談じゃないからな
284デフォルトの名無しさん
2021/04/03(土) 13:13:41.11ID:eS+08rtw チャンピオンの誕生を祝して専スレを建てよう
敗者も向学のためご一緒にどうぞ
敗者も向学のためご一緒にどうぞ
285デフォルトの名無しさん
2021/04/03(土) 13:19:21.91ID:G0wsjcxM それは良い考え。チャンピオンを称えてそうしてくれるとありがたい
286デフォルトの名無しさん
2021/04/03(土) 15:48:41.71ID:cpKOTPf8 >>236
当たらずとも遠からず。
目的は、サーバーテスト。
で、テスト終了後にサーバーを始末したかったんや。。。
>>265
そんなんするくらいなら、makefileのほうが万倍マシやな!w
makeと違って、個別ターゲットの指定もできないし。
>>235
tsortを持ち出す教える君は、上から教えたい気持ちが漏れすぎやで!
https://togetter.com/li/1685
当たらずとも遠からず。
目的は、サーバーテスト。
で、テスト終了後にサーバーを始末したかったんや。。。
>>265
そんなんするくらいなら、makefileのほうが万倍マシやな!w
makeと違って、個別ターゲットの指定もできないし。
>>235
tsortを持ち出す教える君は、上から教えたい気持ちが漏れすぎやで!
https://togetter.com/li/1685
287デフォルトの名無しさん
2021/04/03(土) 15:51:10.04ID:cpKOTPf8288デフォルトの名無しさん
2021/04/04(日) 04:15:28.57ID:Y9bxvDcN >>286
> そんなんするくらいなら、makefileのほうが万倍マシやな!w
> makeと違って、個別ターゲットの指定もできないし。
たった>>265のコードだけで個別ターゲット指定できてるんだが?w
makeの「依存ファイルに基づいてビルドするターゲットを決める」という
メイン機能を使わないなら>>265だけでいい。
シバンがないからこれがシェルスクリプト全体だってわからなかったか?
#!/bin/sh
target1() { echo "target1"; }
target2() { echo "target2"; }
target3() { echo "target3"; }
"$@"
↑これをmake.shとかいうファイル名で作って
./make.sh target1ってやってみ、ちゃんと動作するから
もし ./make.sh target1 target2 target3 みたいに
複数ターゲット指定できるようにしたいなら単にループすればいい
for target in "$@"; do
"$target"
done
お前にとってのmakeの価値はこのたった3行のコードにすぎんよ
一行でも書けるがw
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
> そんなんするくらいなら、makefileのほうが万倍マシやな!w
> makeと違って、個別ターゲットの指定もできないし。
たった>>265のコードだけで個別ターゲット指定できてるんだが?w
makeの「依存ファイルに基づいてビルドするターゲットを決める」という
メイン機能を使わないなら>>265だけでいい。
シバンがないからこれがシェルスクリプト全体だってわからなかったか?
#!/bin/sh
target1() { echo "target1"; }
target2() { echo "target2"; }
target3() { echo "target3"; }
"$@"
↑これをmake.shとかいうファイル名で作って
./make.sh target1ってやってみ、ちゃんと動作するから
もし ./make.sh target1 target2 target3 みたいに
複数ターゲット指定できるようにしたいなら単にループすればいい
for target in "$@"; do
"$target"
done
お前にとってのmakeの価値はこのたった3行のコードにすぎんよ
一行でも書けるがw
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
289252
2021/04/04(日) 06:36:12.78ID:0QnJQanX290デフォルトの名無しさん
2021/04/04(日) 06:54:28.00ID:Y9bxvDcN291デフォルトの名無しさん
2021/04/04(日) 10:55:57.93ID:Y9bxvDcN たまたまビルドを作る必要があってMakefileにちゃんと依存関係を書いてみたが
やっぱり数個程度のファイルしかない場合は過剰なんだよなw
そしてその依存関係の定義はちゃんと正しいのか見なきゃいけなないという
タスクごとにそのまま書いたほうが分かりやすいっていうね
やっぱり数個程度のファイルしかない場合は過剰なんだよなw
そしてその依存関係の定義はちゃんと正しいのか見なきゃいけなないという
タスクごとにそのまま書いたほうが分かりやすいっていうね
292デフォルトの名無しさん
2021/04/04(日) 12:21:35.65ID:Y9bxvDcN 依存関係の定義なくしたw
正確に言えば依存ファイルの定義だな
依存のタスクは残しているが、依存ファイルはどうでもいいや
タスクを実行したら最初からビルドしなおしても時間はかからんし
正確に言えば依存ファイルの定義だな
依存のタスクは残しているが、依存ファイルはどうでもいいや
タスクを実行したら最初からビルドしなおしても時間はかからんし
293デフォルトの名無しさん
2021/04/04(日) 12:30:56.36ID:sWeAOgyW 矮小化した自分に都合に良い条件でしか考えられない
連投さえして同じとこぐるぐる回ってるだけって馬鹿犬かよ
連投さえして同じとこぐるぐる回ってるだけって馬鹿犬かよ
294デフォルトの名無しさん
2021/04/04(日) 12:42:29.55ID:Y9bxvDcN 自分に都合に良い条件で考えるのは足り前
正確に言えば、実際のプロジェクトにいい条件ってこと
架空のプロジェクトを相手にしたってしょうがない
正確に言えば、実際のプロジェクトにいい条件ってこと
架空のプロジェクトを相手にしたってしょうがない
295デフォルトの名無しさん
2021/04/04(日) 13:10:39.02ID:sWeAOgyW プロジェクトってw
想像できませんってだけのそんなレスできるんだから趣味での経験しかないんだろうな
吠えて煩いだけの馬鹿犬だな
想像できませんってだけのそんなレスできるんだから趣味での経験しかないんだろうな
吠えて煩いだけの馬鹿犬だな
296デフォルトの名無しさん
2021/04/04(日) 13:30:29.59ID:rmqTiba5 >>288
all : task1 task2 task3
task1: prepare
task2: prepare
task3: prepare
prepare :
という構成で、タスクは並列可、prepareは超重い、となると、makeが最適解やろ。
all : task1 task2 task3
task1: prepare
task2: prepare
task3: prepare
prepare :
という構成で、タスクは並列可、prepareは超重い、となると、makeが最適解やろ。
297デフォルトの名無しさん
2021/04/04(日) 15:51:18.30ID:Y9bxvDcN298デフォルトの名無しさん
2021/04/04(日) 15:53:37.76ID:Y9bxvDcN299デフォルトの名無しさん
2021/04/04(日) 16:57:04.88ID:WsuFFQM2 狂犬
300デフォルトの名無しさん
2021/04/04(日) 19:44:32.02ID:rmqTiba5 >>298
勝手に終わりにしとるだけやん!w
勝手に終わりにしとるだけやん!w
301デフォルトの名無しさん
2021/04/05(月) 04:28:41.70ID:gsx4ZFoJ 終わりじゃない理由でもあるの?
302デフォルトの名無しさん
2021/04/05(月) 06:19:20.07ID:3jUc8O+L prepare無視して勝手に終わりにしてるってとこだろ
無視というかただわかってないからだろうけど
無視というかただわかってないからだろうけど
303デフォルトの名無しさん
2021/04/05(月) 06:33:48.44ID:Ir9xQslo そう言われてから出すとしたら等価ではないのをまた出しそうでだな
304デフォルトの名無しさん
2021/04/05(月) 08:37:32.95ID:gsx4ZFoJ その前にprepareが何なのか言えよ
ただ実行する以外に何が違うのか書いてないのに
あとつけで違うとか言うなよ
ただ実行する以外に何が違うのか書いてないのに
あとつけで違うとか言うなよ
305デフォルトの名無しさん
2021/04/05(月) 08:49:07.73ID:Ir9xQslo わかってないこと多すぎなのになぜもそう偉そうなのか
306デフォルトの名無しさん
2021/04/05(月) 09:09:31.93ID:Ir9xQslo307デフォルトの名無しさん
2021/04/05(月) 10:59:23.34ID:gsx4ZFoJ308デフォルトの名無しさん
2021/04/05(月) 11:01:51.92ID:gsx4ZFoJ 複数のタスクを指定したときにprepareを一回しか実行しないというのであれば
all関数の最初に一回だけ書いてもいいし
フラグを使って一回だけ実行するようにしてもいい(たった一行で実現可能)
動かしたい通りに書けば良い
all関数の最初に一回だけ書いてもいいし
フラグを使って一回だけ実行するようにしてもいい(たった一行で実現可能)
動かしたい通りに書けば良い
309デフォルトの名無しさん
2021/04/05(月) 11:04:18.21ID:i9PX2oQn 気持ち悪いスレだなあ
310デフォルトの名無しさん
2021/04/05(月) 11:04:54.93ID:gsx4ZFoJ leftpad事件と同じ匂いを感じててしまうな
われわれ(俺除くw)はこんな簡単なコードも書けなくなってしまったのか?
われわれ(俺除くw)はこんな簡単なコードも書けなくなってしまったのか?
311デフォルトの名無しさん
2021/04/05(月) 11:22:30.40ID:i9PX2oQn >>284
棲み分けられるか正直疑問だし、御高説垂れにくい初心者スレ的なのはどうだろうか
棲み分けられるか正直疑問だし、御高説垂れにくい初心者スレ的なのはどうだろうか
312デフォルトの名無しさん
2021/04/05(月) 11:52:33.18ID:qeGrbie0 >>308
そんなクソコードに頼らずとも使えるのがmakeなんやで!w
そんなクソコードに頼らずとも使えるのがmakeなんやで!w
313デフォルトの名無しさん
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があり、それは比較的複雑なものです。
makeはすぐ複雑化するよ
http://quruli.ivory.ne.jp/document/make_3.79.1/make-jp_16.html
C. 複雑なMakefileの例
ここにGNU makeプログラムのmakefileがあり、それは比較的複雑なものです。
314デフォルトの名無しさん
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も示されています。
> ここでは、最初のターゲットなのでデフォルトのゴールは‘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も示されています。
315デフォルトの名無しさん
2021/04/05(月) 12:52:05.95ID:4wNso/hW Makefileが複雑化するのはビルドする工程が複雑化しているという別の問題の顕在化でしかないでしょ
それと同じことができるシェルスクリプトを書くのとMakefileを書くのとどっちが簡単かって話じゃないの
それと同じことができるシェルスクリプトを書くのとMakefileを書くのとどっちが簡単かって話じゃないの
316デフォルトの名無しさん
2021/04/05(月) 13:07:34.94ID:i9PX2oQn 話題に挙がったついでだけどそこでtsortよ
ルールだけ抜き出して可視化しリファクタリングしなさい
ルールだけ抜き出して可視化しリファクタリングしなさい
317デフォルトの名無しさん
2021/04/05(月) 13:09:49.69ID:gsx4ZFoJ >>315
複雑なビルド工程をMakefileだと
・依存関係の定義として記述するのが正しいとされ、シェルスクリプトとしての柔軟性もないので
細切れのタスクが多数できてしまい、見づらくエスケープされたシェルスクリプト等を埋め込むことになる
と言ってます。
Makefileからシェルスクリプトを呼び出すんじゃなくて
シェルスクリプトから(必要な場合に必要な所だけ)makeを呼び出したほうがいいんだよ
そして大抵はmakeはいらない。多くの人がタスクランナーとして使ってるのはそういうこと
本当にmakeが必要なのは、C言語のような古い言語で、ヘッダファイルとソースファイルから
オブジェクトファイルを作ってリンクするような作業の部分だけでしょ?
つまり>>314に書いてあるタスクの殆どはmakeを使う必要がないってこと
複雑なビルド工程をMakefileだと
・依存関係の定義として記述するのが正しいとされ、シェルスクリプトとしての柔軟性もないので
細切れのタスクが多数できてしまい、見づらくエスケープされたシェルスクリプト等を埋め込むことになる
と言ってます。
Makefileからシェルスクリプトを呼び出すんじゃなくて
シェルスクリプトから(必要な場合に必要な所だけ)makeを呼び出したほうがいいんだよ
そして大抵はmakeはいらない。多くの人がタスクランナーとして使ってるのはそういうこと
本当にmakeが必要なのは、C言語のような古い言語で、ヘッダファイルとソースファイルから
オブジェクトファイルを作ってリンクするような作業の部分だけでしょ?
つまり>>314に書いてあるタスクの殆どはmakeを使う必要がないってこと
318デフォルトの名無しさん
2021/04/05(月) 13:28:19.87ID:qeGrbie0 >>317
見辛いシェルスクリプトコードならファイルにしたらええのに。w
見辛いシェルスクリプトコードならファイルにしたらええのに。w
319デフォルトの名無しさん
2021/04/05(月) 14:41:15.13ID:VlUSW8N+ そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...
あと Makefile があれば make install や make clean が存在するっていうのが分かるのがいいんだよ
プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
あと Makefile があれば make install や make clean が存在するっていうのが分かるのがいいんだよ
プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
320デフォルトの名無しさん
2021/04/05(月) 15:23:18.33ID:gsx4ZFoJ > そもそもシェルスクリプトでファイル間の依存関係を定義するのに疲れたから make が生まれたと思うんですけど...
そうだよ?タスクランナーではなく依存関係を定義するために作られたのがmakeだよ
最初からそう言ってるじゃん
そうだよ?タスクランナーではなく依存関係を定義するために作られたのがmakeだよ
最初からそう言ってるじゃん
321デフォルトの名無しさん
2021/04/05(月) 15:26:11.21ID:gsx4ZFoJ > プロジェクトごとにシェルスクリプトがあったらどういう引数で読んだらいいかとか分からないだろ?
俺はそれよりもmakeで実行できるタスクに何があるのかわからんのだがw
make --helpした所で表示されないしな
Makefileみればわかるって?それはソース見ればわかるって言ってるようなもんだし
依存関係を見たいんじゃなくて、makeで直接実行することを目的としたタスクの一覧が見たいんだよ
俺はそれよりもmakeで実行できるタスクに何があるのかわからんのだがw
make --helpした所で表示されないしな
Makefileみればわかるって?それはソース見ればわかるって言ってるようなもんだし
依存関係を見たいんじゃなくて、makeで直接実行することを目的としたタスクの一覧が見たいんだよ
322デフォルトの名無しさん
2021/04/05(月) 16:03:10.00ID:r6jGhjiZ323デフォルトの名無しさん
2021/04/05(月) 16:07:12.70ID:rGWHafb6324デフォルトの名無しさん
2021/04/05(月) 16:13:51.85ID:r6jGhjiZ そのレスはコーダーと呼ばれる人種っぽいレスだな
いや、普通の日本語の文もそうだが読み取る能力が欠けてるだけだな
それは矮小化した自分に都合の良い条件でしか考えられないからだな
プロジェクトwwとか関係ないよ、ソース読めないといってるのと同じだな今回は
いや、普通の日本語の文もそうだが読み取る能力が欠けてるだけだな
それは矮小化した自分に都合の良い条件でしか考えられないからだな
プロジェクトwwとか関係ないよ、ソース読めないといってるのと同じだな今回は
325デフォルトの名無しさん
2021/04/05(月) 16:14:36.43ID:rGWHafb6 そんなレスは誰も求めてないよ
326デフォルトの名無しさん
2021/04/05(月) 16:17:39.09ID:r6jGhjiZ 懲りずに
矮小化した自分に都合の良い条件
かよwそれこそ誰も求めてないぞ
矮小化した自分に都合の良い条件
かよwそれこそ誰も求めてないぞ
327デフォルトの名無しさん
2021/04/05(月) 17:28:04.19ID:qeGrbie0 >>321
ターゲットを調べたければ、sedでも使ったらすぐにわかるやん。w
ターゲットを調べたければ、sedでも使ったらすぐにわかるやん。w
328デフォルトの名無しさん
2021/04/05(月) 20:09:00.48ID:nAjTTeFT 気持ち悪い煽りだな
329デフォルトの名無しさん
2021/04/05(月) 20:33:09.06ID:Oftt9CcS ルビキチ臭
330デフォルトの名無しさん
2021/04/05(月) 21:07:57.60ID:rGWHafb6 >>327
ターゲットじゃなくてタスクを見たいんだってw
例えばシェルスクリプトなら--helpして分かりやすいusageが
表示されるように作るだろ?
sedではそのわかりやすさがない。頑張れば作れるだろうが
Makefileでそんなのが用意されてるのみたことないよ
ターゲットじゃなくてタスクを見たいんだってw
例えばシェルスクリプトなら--helpして分かりやすいusageが
表示されるように作るだろ?
sedではそのわかりやすさがない。頑張れば作れるだろうが
Makefileでそんなのが用意されてるのみたことないよ
331252
2021/04/05(月) 21:19:53.87ID:2g7RifS+ Ruby のタスクランナー、Rake, Thor などでは調べるのも簡単
thor list,
thor タスク名
などで、タスクを表示できる
タスク定義の仕方も決まっているので、保守しやすい。
シェルスクリプトでは、各人で書き方を変えるから、保守できない
thor list,
thor タスク名
などで、タスクを表示できる
タスク定義の仕方も決まっているので、保守しやすい。
シェルスクリプトでは、各人で書き方を変えるから、保守できない
332デフォルトの名無しさん
2021/04/05(月) 21:21:58.48ID:VlUSW8N+ こいつがまともなレスしてるの初めて見たぞ... 明日も雨か?
333デフォルトの名無しさん
2021/04/05(月) 21:22:55.94ID:qeGrbie0334デフォルトの名無しさん
2021/04/05(月) 22:30:31.71ID:Oftt9CcS あいつは何を言いたい何をしたいんだかな
何をしたいのかは「勝ちたい/負けたなくない」wwなのは明白だったか
何をしたいのかは「勝ちたい/負けたなくない」wwなのは明白だったか
335デフォルトの名無しさん
2021/04/05(月) 22:47:11.83ID:rGWHafb6336デフォルトの名無しさん
2021/04/05(月) 22:48:23.80ID:rGWHafb6337デフォルトの名無しさん
2021/04/05(月) 22:56:26.91ID:Oftt9CcS だから結局そうなるってwこいつの頭の中身はどうなってんだよ、ほんとに
利点を争ってるwのはそこじゃないだろうにな
「勝ちたい/負けたなくない」wwすぎて誤魔化しがカオス
利点を争ってるwのはそこじゃないだろうにな
「勝ちたい/負けたなくない」wwすぎて誤魔化しがカオス
338デフォルトの名無しさん
2021/04/05(月) 22:59:22.09ID:Oftt9CcS まあ、チャンピオンはこうだからチャンピオンなわけで、誰も勝てないわな
さすがチャンピオン
適当に諦めて試合放棄してもいいよ、挑戦者
さすがチャンピオン
適当に諦めて試合放棄してもいいよ、挑戦者
339デフォルトの名無しさん
2021/04/05(月) 23:00:22.41ID:rGWHafb6 それなら勝ち負けじゃなくてmakeの利点・欠点の話をすればいいじゃん
俺はずっとmakeの話をしてるんだが、お前は俺の話しかしてないじゃん
俺はずっとmakeの話をしてるんだが、お前は俺の話しかしてないじゃん
340デフォルトの名無しさん
2021/04/05(月) 23:02:35.31ID:rGWHafb6 もちろんシェルスクリプトのスレだから
makeよりもシェルスクリプトの方が良いっていう話ね
あと今更言わなくてもわかると思うけど、タスクランナーとして使う場合
makeよりもシェルスクリプトの方が良いっていう話ね
あと今更言わなくてもわかると思うけど、タスクランナーとして使う場合
341デフォルトの名無しさん
2021/04/05(月) 23:03:21.85ID:Oftt9CcS お前に無駄な挑戦はしないww観客がヤジるくらい許せよ、チャンピオンなんだから
てか「勝ちたい/負けたなくない」wwはお前だけだぞ、言っておくが
すんなり「それなら勝ち負けじゃなくて」って言葉出るのな、さすがチャンピオン
てか「勝ちたい/負けたなくない」wwはお前だけだぞ、言っておくが
すんなり「それなら勝ち負けじゃなくて」って言葉出るのな、さすがチャンピオン
342デフォルトの名無しさん
2021/04/05(月) 23:03:56.47ID:VlUSW8N+ タスクランナーとして使う場合の話だったのか、それなら好きなのを使えばいいよ...
343デフォルトの名無しさん
2021/04/05(月) 23:20:17.04ID:i9PX2oQn ほんそれ
原理主義者ってこえーわ
原理主義者ってこえーわ
344デフォルトの名無しさん
2021/04/05(月) 23:23:23.69ID:rGWHafb6345デフォルトの名無しさん
2021/04/05(月) 23:26:14.86ID:Oftt9CcS >>344
>自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない
お前自体が逸脱することしょっちゅうあるくせに
昔からなんか困ったらw(黙らせたいとかw)そう言うよなってしか感じませんよ
>自覚してないと思うんだけど、お前のそのレス、またシェルスクリプトの話にはなってない
お前自体が逸脱することしょっちゅうあるくせに
昔からなんか困ったらw(黙らせたいとかw)そう言うよなってしか感じませんよ
346デフォルトの名無しさん
2021/04/05(月) 23:37:33.37ID:rGWHafb6 な?またシェルスクリプトの話題が入ってないやろ?そういうとこやで
347デフォルトの名無しさん
2021/04/05(月) 23:44:04.08ID:Oftt9CcS >>342は「好きなのを使えばいい」だろう
なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
そういうのは「好きなのを使えばいい」とは言わないだろう
>>342はどっちでもいい、どちらに優位とかは本人次第での「好きなのを使えばいい」だろうと思われるが
だったら、チャンピオンらしいさすがカオスな世界観
未だにMakefileの利点と挙げられてるがのがわかってないなって感じ
簡単に言うと定型フォーマットでルールを記述、オレオレロジック書く必要もないてとこかと思うんだけど、言ってるのは
何故全く理解できないのかなんだか不思議でたまらないカオスな世界
>>346
>>345
な?同じことを平気で何故か言えるだろ?
なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
そういうのは「好きなのを使えばいい」とは言わないだろう
>>342はどっちでもいい、どちらに優位とかは本人次第での「好きなのを使えばいい」だろうと思われるが
だったら、チャンピオンらしいさすがカオスな世界観
未だにMakefileの利点と挙げられてるがのがわかってないなって感じ
簡単に言うと定型フォーマットでルールを記述、オレオレロジック書く必要もないてとこかと思うんだけど、言ってるのは
何故全く理解できないのかなんだか不思議でたまらないカオスな世界
>>346
>>345
な?同じことを平気で何故か言えるだろ?
348デフォルトの名無しさん
2021/04/06(火) 00:33:09.03ID:+n99AGjS > なのにチャンピオンは「最初にそう書いてるんだが」って書いておいての次の2行
> そういうのは「好きなのを使えばいい」とは言わないだろう
補足しておくな
最初に【タスクランナーの話だと】そう書いてる
そして【タスクランナーの話だと】シェルスクリプトの方が良いと最初に書いてる
何の話なのかをあやふやにして、
他人が言ったことをすり替えようとするのは
お前がよく使う手だ。(何度も指摘されてるだろ?)
> そういうのは「好きなのを使えばいい」とは言わないだろう
補足しておくな
最初に【タスクランナーの話だと】そう書いてる
そして【タスクランナーの話だと】シェルスクリプトの方が良いと最初に書いてる
何の話なのかをあやふやにして、
他人が言ったことをすり替えようとするのは
お前がよく使う手だ。(何度も指摘されてるだろ?)
349デフォルトの名無しさん
2021/04/06(火) 00:34:38.03ID:+n99AGjS タスクランナーはシェルスクリプトが良いと最初に言ってるのに
なんで好きなものを使えばいいという話につながるのかわからん
最初から「好きなものを使えばいい」とは言ってないだろう
文章を読めないのか、話をすり替えるのが目的なのか
なんで好きなものを使えばいいという話につながるのかわからん
最初から「好きなものを使えばいい」とは言ってないだろう
文章を読めないのか、話をすり替えるのが目的なのか
350デフォルトの名無しさん
2021/04/06(火) 00:39:08.04ID:+n99AGjS タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
351デフォルトの名無しさん
2021/04/06(火) 00:53:19.81ID:WV1MWJne >>348,349
単に「タスクランナーとして使う場合の話だったのか」の部分だけを言っているのか
そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
あんな短文を分けて肯定否定してるなんて、わかりづらいわっ
まあ、そこまで読めなかったのは俺にも責はあるけどな
(何で食いついてるのかと思ったら何となく理解した。アレだからだろな、やっぱ)
だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。他に誰もいないだろう(せいぜい好きなの使えばいいというのだろう、他のも勧めてるのも居るしなw)
そしてシェルスクリプトがいいと言ってる理由がことごとくアレwされてるだろうに、自覚ないようだけど。そういうとこやで(ww)
あとな、シェルスクリプトの話を「してほしい」wなら、
少しはその自分のカオスな世界観wを他人にもわかるぐらいに直しないさいな
まあ「してほしい」wんじゃなくて黙らせたいだけなんだろけど、自ら行ってもいるんだからな
変わらないんだろうから、お前のルールなんて知らんとだけ言っておく
単に「タスクランナーとして使う場合の話だったのか」の部分だけを言っているのか
そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
あんな短文を分けて肯定否定してるなんて、わかりづらいわっ
まあ、そこまで読めなかったのは俺にも責はあるけどな
(何で食いついてるのかと思ったら何となく理解した。アレだからだろな、やっぱ)
だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。他に誰もいないだろう(せいぜい好きなの使えばいいというのだろう、他のも勧めてるのも居るしなw)
そしてシェルスクリプトがいいと言ってる理由がことごとくアレwされてるだろうに、自覚ないようだけど。そういうとこやで(ww)
あとな、シェルスクリプトの話を「してほしい」wなら、
少しはその自分のカオスな世界観wを他人にもわかるぐらいに直しないさいな
まあ「してほしい」wんじゃなくて黙らせたいだけなんだろけど、自ら行ってもいるんだからな
変わらないんだろうから、お前のルールなんて知らんとだけ言っておく
352デフォルトの名無しさん
2021/04/06(火) 00:53:50.60ID:WV1MWJne (まだやってる。懲りないやつだな)
353デフォルトの名無しさん
2021/04/06(火) 00:55:43.56ID:+n99AGjS > そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
知らねーよ。俺が言ったセリフじゃないんだから
言ったやつに言えよ
俺は、タスクランナーとして使う場合は
シェルスクリプトの方がいいとしか言ってない
誰が言ったかを理解してないのか?
それともわざとあやふやにして
全部俺のせいにしようとしてるのかどっちだ?
知らねーよ。俺が言ったセリフじゃないんだから
言ったやつに言えよ
俺は、タスクランナーとして使う場合は
シェルスクリプトの方がいいとしか言ってない
誰が言ったかを理解してないのか?
それともわざとあやふやにして
全部俺のせいにしようとしてるのかどっちだ?
354デフォルトの名無しさん
2021/04/06(火) 00:56:56.22ID:+n99AGjS > だから、シェルスクリプトがいい/Makefile使うなwと言ってるのはお前だけだって。
だからなんなんだろう?
技術の話をせーや
俺はシェルスクリプトの話をして、シェルスクリプトの方が優れてると言ってる
お前の反論は、そんなこと言ってるのはお前だ!で
技術的な話が全く入ってない
だからなんなんだろう?
技術の話をせーや
俺はシェルスクリプトの話をして、シェルスクリプトの方が優れてると言ってる
お前の反論は、そんなこと言ってるのはお前だ!で
技術的な話が全く入ってない
355デフォルトの名無しさん
2021/04/06(火) 01:05:48.82ID:WV1MWJne > そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
だよ。そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
>あんな短文を分けて肯定否定してるなんて、わかりづらい
文を書いたのはお前な、お前の責もあるのは当然だろう。元文を書いた人は何にも関係ないぞ、関係ないのは明らかだろうに、あんなわかりやすいw文
そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
だよ。そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
>あんな短文を分けて肯定否定してるなんて、わかりづらい
文を書いたのはお前な、お前の責もあるのは当然だろう。元文を書いた人は何にも関係ないぞ、関係ないのは明らかだろうに、あんなわかりやすいw文
356デフォルトの名無しさん
2021/04/06(火) 01:07:35.33ID:WV1MWJne >>351の中と後半に書いてる
わかってないなら、中と後半、そして最後の一文を繰り返すだけだな
わかってないなら、中と後半、そして最後の一文を繰り返すだけだな
357デフォルトの名無しさん
2021/04/06(火) 01:08:02.78ID:+n99AGjS × そして「それなら好きなのを使えばいいよ」はあくまでも否定してる文のつもりかよ
○ そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
↑文を書いたのはお前だろw
まず自分の責任を認めろ
○ そして「それなら好きなのを使えばいいよ」に対しては あくまでも否定してる文のつもりかよ
↑文を書いたのはお前だろw
まず自分の責任を認めろ
358デフォルトの名無しさん
2021/04/06(火) 01:09:30.57ID:+n99AGjS359デフォルトの名無しさん
2021/04/06(火) 01:11:42.44ID:WV1MWJne >そう読んだか。わかると思うんだがなあ、まあ、なんかすまん
わざわざ×○整形してるくせに、次のは読まないんだな
チャンピオンとしては受け取れないのか...w
>>358
すでにされてることを何で繰り返さなければならないのか
お前のルールなんて知らんwオレオレルール押し付けすぎだろう
わざわざ×○整形してるくせに、次のは読まないんだな
チャンピオンとしては受け取れないのか...w
>>358
すでにされてることを何で繰り返さなければならないのか
お前のルールなんて知らんwオレオレルール押し付けすぎだろう
360デフォルトの名無しさん
2021/04/06(火) 01:12:56.30ID:+n99AGjS シェルスクリプトかMakefileのコードは?
361デフォルトの名無しさん
2021/04/06(火) 01:13:32.15ID:+n99AGjS 反論がないからもう一度書くね
タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
タスクランナーとして使う場合、依存しているファイルがないので
Makefileで使える部分は
task:
↑これだけなんだよ
そしてtaskの中身は、コマンドを羅列するか
シェルスクリプトを"エスケープして"埋め込むことだけ
task: であれば
task() { と書いても数文字増える程度で大差なく、
一番重要なタスクの処理は、
task() {
ここにコマンドやシェルスクリプトを
エスケープせずにそのまま書けるというメリットが有る
}
もちろん task 関数を書いただけじゃ呼び出せないから
それをシェルスクリプトでは呼び出すコードが必要
あー、それがオレオレロジックなんだーって言うかもしれないが
それは>>287に書いた通り
# お前に必要なmakeコマンドの実装
for target; do "$target"; done
たったこれだけ
362デフォルトの名無しさん
2021/04/06(火) 01:16:39.85ID:WV1MWJne カオス化がまた一層酷くになったwので、>>351の最後を繰り返すだけだぞ
続けて欲しい、技術的な話をしたいwだったら変わってみような
(そういえばチャンピオンのもう一つの武器は繰り返し言い張るだな
俺の繰り返し言い張りwも受けてみてほしいものだw)
続けて欲しい、技術的な話をしたいwだったら変わってみような
(そういえばチャンピオンのもう一つの武器は繰り返し言い張るだな
俺の繰り返し言い張りwも受けてみてほしいものだw)
363デフォルトの名無しさん
2021/04/06(火) 01:18:01.12ID:+n99AGjS >>361に何一つコメントできないくせにレスだけはするんだよな
自覚したほうがいいよ
自覚したほうがいいよ
364デフォルトの名無しさん
2021/04/06(火) 01:21:16.72ID:WV1MWJne 「しない」という選択肢もあるんだよ。自覚も何も「わざと」なw
だから、そのカオスの原因を直しなさいよ、「してほしい」wなら
だから、そのカオスの原因を直しなさいよ、「してほしい」wなら
365デフォルトの名無しさん
2021/04/06(火) 01:32:38.75ID:TYYwd7pV366デフォルトの名無しさん
2021/04/06(火) 01:37:47.42ID:TYYwd7pV >>361
前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
&でbg処理したらええというもんではない。そもそも、並列実行していいかどうかも未定義やし。
まあ、それがプログラムとしてはふつうなんやけど、makeに比べると、makefileがルールとして記述するだけやから、そりゃあかなわんわなあ。w
前にあったprepareタスクのような、フローの合理化が、シェルスクリプトでは面倒。
&でbg処理したらええというもんではない。そもそも、並列実行していいかどうかも未定義やし。
まあ、それがプログラムとしてはふつうなんやけど、makeに比べると、makefileがルールとして記述するだけやから、そりゃあかなわんわなあ。w
367デフォルトの名無しさん
2021/04/06(火) 01:39:22.54ID:bGyEcdYQ 億倍ww
シレっと煽るねえ(もしくはウィット入れるねえ)
だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
シレっと煽るねえ(もしくはウィット入れるねえ)
だが、チャンピオンには通じないぞ、マジでそう受け取るぞw
368デフォルトの名無しさん
2021/04/06(火) 02:36:53.08ID:Zjnr+Ca7 >>316
gnuのtsortは-fで視点グリグリできないからあかんね、珍しくBSDの方が便利なコマンド
gnuのtsortは-fで視点グリグリできないからあかんね、珍しくBSDの方が便利なコマンド
369デフォルトの名無しさん
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 # ヘルプ表示
(やる前から同じように書けるはずだって気づかないもんですかねぇ)
> シェルスクリプトでコマンドライン引数処理をするよりも、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 # ヘルプ表示
(やる前から同じように書けるはずだって気づかないもんですかねぇ)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★2 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- 【配信】TikTokで収益化を剥奪される日本人クリエイターが続出 [muffin★]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ2🧪
- 千晴より先にレスナンバー4を俺が取るだけのスレ
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- Chatgptのサムアルトマン、買い占めたメモリを使わず焼却処分「GoogleやClaudeが値上げで買えないようにする」 [347751896]
- 【新番組】轟はじめ🐧⚡のぶんぶんぶーん🚗💨!【🏡】
- ケンモメンってなんでこんなに反日が多いの? [866936191]
