シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
・「POSIX原理主義」「ユニケージ」「USP研究所」はPOSIXとUnixを曲解し
間違ったシェルスクリプトを広めている宗教です。洗脳されないようにしてください。
前スレ: シェルスクリプト総合 その36
https://mevius.5ch.net/test/read.cgi/tech/1614212414/
関連スレ
・【Bash】Windows Subsystem for Linux【WSL】11
https://mao.5ch.net/test/read.cgi/linux/1627507889/
・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/
探検
シェルスクリプト総合 その37
■ このスレッドは過去ログ倉庫に格納されています
2021/10/05(火) 22:49:30.91ID:KsbWuyFp
475デフォルトの名無しさん
2021/12/31(金) 00:15:48.12ID:K3Q5NoN0 ティム・クックCEOとのランチには5,500円ではなく5,500万円以上必要!
Appleのティム・クックCEOとのランチをする権利のチャリティーオークションが終了しました。
結果は51,500ドル以上(約5,500万円以上)で落札されたそうです。
このオークション、落札者にはティム・クックCEOとランチができる権利とAppleイベントの
基調講演に参加できるVIPパス2枚がついてきます。
2013年は約6,200万円、2014年は約3,300万円、2015年は約2,400万円で落札されていました。
今回は約5,500万円なので高値で落札されていますね。
しかしお高いランチ代。いったい誰が落札したんでしょうか。
Appleのティム・クックCEOとのランチをする権利のチャリティーオークションが終了しました。
結果は51,500ドル以上(約5,500万円以上)で落札されたそうです。
このオークション、落札者にはティム・クックCEOとランチができる権利とAppleイベントの
基調講演に参加できるVIPパス2枚がついてきます。
2013年は約6,200万円、2014年は約3,300万円、2015年は約2,400万円で落札されていました。
今回は約5,500万円なので高値で落札されていますね。
しかしお高いランチ代。いったい誰が落札したんでしょうか。
476デフォルトの名無しさん
2021/12/31(金) 00:16:13.59ID:tL7Nlh3I >>475
俺だよ
俺だよ
477デフォルトの名無しさん
2021/12/31(金) 00:56:01.88ID:QVDmbS0E >>471
installについてだけ突っ込んでるけど、
文書の本質は、inodeか変わる場合は、という意味で話してるのは理解してるか?
mvで上書きするとinode変わると信じてるけど、
installつかったすべての状況で、inode変わるかまでは分からないから、
installを例に挙げたのが悪かったのは認める。
installについてだけ突っ込んでるけど、
文書の本質は、inodeか変わる場合は、という意味で話してるのは理解してるか?
mvで上書きするとinode変わると信じてるけど、
installつかったすべての状況で、inode変わるかまでは分からないから、
installを例に挙げたのが悪かったのは認める。
478デフォルトの名無しさん
2021/12/31(金) 01:01:12.81ID:tL7Nlh3I だーかーらーinstall使っても
inodeは変わらないって言ってんだろ
信じてるとかじゃなくて、ちゃんと調べろ
inodeは変わらないって言ってんだろ
信じてるとかじゃなくて、ちゃんと調べろ
479デフォルトの名無しさん
2021/12/31(金) 01:17:16.41ID:QVDmbS0E >>478
本質でないinstallについてだけツッコミたいということは理解した
本質でないinstallについてだけツッコミたいということは理解した
480デフォルトの名無しさん
2021/12/31(金) 01:19:12.98ID:tL7Nlh3I481デフォルトの名無しさん
2021/12/31(金) 02:12:06.87ID:FGQbYFO9482デフォルトの名無しさん
2021/12/31(金) 02:37:27.40ID:JipSLIiO https://stackoverflow.com/questions/21096478/overwrite-executing-bash-script-files
The { forces the shell to read at least through the matching } in order to properly parse the command, and the exit then makes sure it'll never try to execute anything that gets added after that }.
BTW, I was testing this with bash version 3.2.48(1)-release (on OS X 10.8.5); other versions may behave differently...
UPDATE: Other versions do indeed behave differently. I tried the same test with version 4.3.0(1)-release (under NetBSD 6.1.4), and it continued to run the old code after the file's contents had been replaced. Apparently it now buffers the file in 8KB blocks (see this unix.se answer).
The { forces the shell to read at least through the matching } in order to properly parse the command, and the exit then makes sure it'll never try to execute anything that gets added after that }.
BTW, I was testing this with bash version 3.2.48(1)-release (on OS X 10.8.5); other versions may behave differently...
UPDATE: Other versions do indeed behave differently. I tried the same test with version 4.3.0(1)-release (under NetBSD 6.1.4), and it continued to run the old code after the file's contents had been replaced. Apparently it now buffers the file in 8KB blocks (see this unix.se answer).
483デフォルトの名無しさん
2021/12/31(金) 02:50:56.77ID:JipSLIiO Under bash 5..0.3(1)-release on linux, it reads in 8KB blocks... but this doesn't prevent the error (in the version without the {}s), because, after the sleep is done, it seeks back to the position in the file just after the sleep! Strange behavior. {}s still protect it, good answer.
484デフォルトの名無しさん
2021/12/31(金) 12:57:25.57ID:nXuYiPI/485デフォルトの名無しさん
2021/12/31(金) 14:35:36.48ID:fEOKhR13 お前は { ...; exit;} での対策が無効と思ってるのか?
それともそんな面倒なこと徹底できるわけないと思ってるのか?
それともそんな面倒なこと徹底できるわけないと思ってるのか?
486デフォルトの名無しさん
2021/12/31(金) 15:21:35.07ID:3oIZShwK >ファイルを全部メモリに読み込んでたらメモリの無駄遣い
メモリの無駄遣いじゃなかったの?
メモリの無駄遣いじゃなかったの?
487デフォルトの名無しさん
2021/12/31(金) 15:44:50.78ID:tL7Nlh3I488デフォルトの名無しさん
2021/12/31(金) 15:45:56.85ID:tL7Nlh3I489デフォルトの名無しさん
2021/12/31(金) 15:46:40.16ID:tL7Nlh3I 例えばコメントとかメモリに置いておく必要はないよな
空白もそのままメモリに保持するのはメモリの無駄遣いでしかない
空白もそのままメモリに保持するのはメモリの無駄遣いでしかない
490デフォルトの名無しさん
2021/12/31(金) 16:10:52.10ID:x+iSzQey >>488
何言ってんのw
何言ってんのw
491デフォルトの名無しさん
2021/12/31(金) 16:59:46.95ID:fEOKhR13492デフォルトの名無しさん
2021/12/31(金) 21:32:31.66ID:tL7Nlh3I >>490
わからないの?コンパイラの仕組みとか勉強したほうが良いよ。
わからないの?コンパイラの仕組みとか勉強したほうが良いよ。
493デフォルトの名無しさん
2021/12/31(金) 21:34:32.21ID:tL7Nlh3I494デフォルトの名無しさん
2021/12/31(金) 22:02:04.77ID:FGQbYFO9 >>492
おまえが常識を知るべき。w
おまえが常識を知るべき。w
495デフォルトの名無しさん
2022/01/01(土) 01:34:30.30ID:X6UBQb83496デフォルトの名無しさん
2022/01/01(土) 01:48:54.59ID:X6UBQb83 まあ俺は優しいから教えてやろうw
{ echo '#!/bin/sh'; printf '#%100s\n' {1..1000000}; echo sleep 30; echo end; } > scr.sh
これで100MBぐらいのシェルスクリプトができる
これを実行しても3MBぐらいしかメモリは食わない
内部形式は小さいからだ
これを全部メモリに蓄えておくと100MB以上消費する
最初にパースして内部形式にする方式は
後ろにバイナリとかがついている時ににエラーになるから使えない
{ echo '#!/bin/sh'; printf '#%100s\n' {1..1000000}; echo sleep 30; echo end; } > scr.sh
これで100MBぐらいのシェルスクリプトができる
これを実行しても3MBぐらいしかメモリは食わない
内部形式は小さいからだ
これを全部メモリに蓄えておくと100MB以上消費する
最初にパースして内部形式にする方式は
後ろにバイナリとかがついている時ににエラーになるから使えない
497デフォルトの名無しさん
2022/01/01(土) 02:25:58.45ID:4YArnW91 ヤバいww マジもんのアホの子だったwww
498デフォルトの名無しさん
2022/01/01(土) 02:34:27.52ID:C+d3qbg4 { echo '#!/bin/sh'; echo '{'; printf 'printf %s\n' {1..1000000}; echo sleep 30; echo '}'; } > scr.sh
「内部形式は小さいからだ」wwwww
「内部形式は小さいからだ」wwwww
499デフォルトの名無しさん
2022/01/01(土) 02:37:31.29ID:MVIeZ8kP echo "あけおめ $(TZ=Asia/Tokyo date +%Y)"
500デフォルトの名無しさん
2022/01/01(土) 03:08:50.88ID:IS6zNVE1 今回のケースって世代バックアップとかやってたとしても
それを掴んでたバックアップスクリプト自体が上書きされて暴走して余計なファイルまで全消ししたわけだよね
>実行中のスクリプトが存在している状態でスクリプトの上書きによりリリースしてしまった
問題はここだけだと思うんだけど
酷く杜撰な運用に見える
*nix使いってこの程度のITリテラシーしかないんだね
気持ち悪い
それを掴んでたバックアップスクリプト自体が上書きされて暴走して余計なファイルまで全消ししたわけだよね
>実行中のスクリプトが存在している状態でスクリプトの上書きによりリリースしてしまった
問題はここだけだと思うんだけど
酷く杜撰な運用に見える
*nix使いってこの程度のITリテラシーしかないんだね
気持ち悪い
501デフォルトの名無しさん
2022/01/01(土) 04:56:33.89ID:eqRzM57+502デフォルトの名無しさん
2022/01/01(土) 09:21:39.56ID:xOGFhMUK503デフォルトの名無しさん
2022/01/01(土) 09:27:14.46ID:xOGFhMUK >>501
実行中なら中断するか終了を待ってから新しいのをリリースすればいいだけだろ
日次バッチを中断したり終了を待つのに金も時間もかなりかかるのかい?
他にも例えば権限管理をまともにしてれば防げたよね?
実行中なら中断するか終了を待ってから新しいのをリリースすればいいだけだろ
日次バッチを中断したり終了を待つのに金も時間もかなりかかるのかい?
他にも例えば権限管理をまともにしてれば防げたよね?
504デフォルトの名無しさん
2022/01/01(土) 10:19:02.42ID:EsvsX5UV >>500
バックアップ容量が多いと、書き込み先の書き込み速度以上のスピードはでないから、
複数世代バックアップするにも、ずっーとバックアップというかコピーというかの処理をし続けることになる。
月次フルバックアップ処理中に、次の増分バックアップ処理が始まるのはテープの場合はよくある。
今回は復元不能と言っていることから過去のバックアップも消えてそうでD2Dっぽいけど、
そういう設計なら基本的にスクリプトは止められないから、
止まったときに更新するんじゃなく、
別のスクリプトをリリースして、古いスクリプトを退役させるような方式を選ぶと思う。
毎日すぐに処理が終わるようなスクリプトしか目にしてないエンジニアが、
そんな設計とは知らず、そのまま更新しちゃったとかそんな理由なんじゃないかなあ?
バックアップ容量が多いと、書き込み先の書き込み速度以上のスピードはでないから、
複数世代バックアップするにも、ずっーとバックアップというかコピーというかの処理をし続けることになる。
月次フルバックアップ処理中に、次の増分バックアップ処理が始まるのはテープの場合はよくある。
今回は復元不能と言っていることから過去のバックアップも消えてそうでD2Dっぽいけど、
そういう設計なら基本的にスクリプトは止められないから、
止まったときに更新するんじゃなく、
別のスクリプトをリリースして、古いスクリプトを退役させるような方式を選ぶと思う。
毎日すぐに処理が終わるようなスクリプトしか目にしてないエンジニアが、
そんな設計とは知らず、そのまま更新しちゃったとかそんな理由なんじゃないかなあ?
505デフォルトの名無しさん
2022/01/01(土) 11:10:41.01ID:eqRzM57+ >>503
そんなのなら本気やないな。w
テラバイトレベルのバックアップをしっかり実装すんのはなかなかやと思うが。
「日次」でいけるかどうかもあやしいやろ。
クリティカルなシステムでもなし、ただ甘く見てた、てところやろうとは思うが。
そんなのなら本気やないな。w
テラバイトレベルのバックアップをしっかり実装すんのはなかなかやと思うが。
「日次」でいけるかどうかもあやしいやろ。
クリティカルなシステムでもなし、ただ甘く見てた、てところやろうとは思うが。
506デフォルトの名無しさん
2022/01/01(土) 11:53:24.53ID:vr0aJE4l >>505
長時間かかる処理は普通suspend/resumeできるようにするよね?
自作しなくても市販のソフト買ってもいいし
日次で終わるかどうかは障害とは関係ないが
ミラーリングなのに日次で終わらないようなら作りが悪いよ
それにバックアップスクリプトに削除を混ぜるのがそもそも間違い
ジョブの単位や依存関係の管理が杜撰
長時間かかる処理は普通suspend/resumeできるようにするよね?
自作しなくても市販のソフト買ってもいいし
日次で終わるかどうかは障害とは関係ないが
ミラーリングなのに日次で終わらないようなら作りが悪いよ
それにバックアップスクリプトに削除を混ぜるのがそもそも間違い
ジョブの単位や依存関係の管理が杜撰
507デフォルトの名無しさん
2022/01/01(土) 12:42:08.01ID:eqRzM57+ スパコンの市販ソフトって、どこで売ってんの?w
508デフォルトの名無しさん
2022/01/01(土) 15:00:36.73ID:w7Saqf4k509デフォルトの名無しさん
2022/01/01(土) 15:06:02.27ID:9R1m0X3m510デフォルトの名無しさん
2022/01/01(土) 15:08:39.26ID:9R1m0X3m511デフォルトの名無しさん
2022/01/01(土) 15:51:26.55ID:s/zRpYH/ 今までしてなかったのか…
512デフォルトの名無しさん
2022/01/01(土) 16:05:12.10ID:5XWhCSq7 >>472
動的な部分以外で?
動的な部分以外で?
513デフォルトの名無しさん
2022/01/01(土) 20:11:57.76ID:VJKo4de7 >>475
俺、ティム・クックと0円でランチを一緒にしたことあるぞ。
例の宇宙船にほど近いレストランのカウンター席でメシを食ってたら隣に誰か座ってきた。
その人は電話をしまくってて、落ち着かねー奴だなーと思って顔をよく見たら... !!!
俺、ティム・クックと0円でランチを一緒にしたことあるぞ。
例の宇宙船にほど近いレストランのカウンター席でメシを食ってたら隣に誰か座ってきた。
その人は電話をしまくってて、落ち着かねー奴だなーと思って顔をよく見たら... !!!
514デフォルトの名無しさん
2022/01/01(土) 21:57:57.81ID:eqRzM57+515デフォルトの名無しさん
2022/01/01(土) 22:33:56.61ID:OowWZOH4 >>498
それ内部形式じゃないぞ?
100MBのシェルスクリプトのソースコードを生成してるだけ
100MBのシェルスクリプトを実行してもわずかのメモリしか消費しない
内部形式は小さいからだ!
やっぱアホの子はお前の方?w
それ内部形式じゃないぞ?
100MBのシェルスクリプトのソースコードを生成してるだけ
100MBのシェルスクリプトを実行してもわずかのメモリしか消費しない
内部形式は小さいからだ!
やっぱアホの子はお前の方?w
516デフォルトの名無しさん
2022/01/01(土) 23:26:19.57ID:2clFsvDI >>514
off-the-shelf softwareの日本語訳だよ
そこら辺の電気屋さんとかで買えるという意味の市販とは確かに違うが
市販ソフトって言葉は文脈によってもう少し広い意味になるよ
勉強になった?
off-the-shelf softwareの日本語訳だよ
そこら辺の電気屋さんとかで買えるという意味の市販とは確かに違うが
市販ソフトって言葉は文脈によってもう少し広い意味になるよ
勉強になった?
517デフォルトの名無しさん
2022/01/02(日) 00:17:01.00ID:krHLUjqu518デフォルトの名無しさん
2022/01/02(日) 02:41:50.85ID:rJLs0hO4 >>517
Linux用でいいのでは?
https://support.hpe.com/hpesc/public/docDisplay?docId=a00109703ja_jp&docLocale=ja_JP
オペレーティングシステム
HPE Cray Linux Environment
HPE Cray Programming Environment
Intel Parallel Studio XE (およびIntel MPI)
PGI Professional Edition
GNUコンパイラコレクション
Rogue Wave SoftwareのTotalView
AMD AOCC
Vampir
GNUコンパイラ
Linux用でいいのでは?
https://support.hpe.com/hpesc/public/docDisplay?docId=a00109703ja_jp&docLocale=ja_JP
オペレーティングシステム
HPE Cray Linux Environment
HPE Cray Programming Environment
Intel Parallel Studio XE (およびIntel MPI)
PGI Professional Edition
GNUコンパイラコレクション
Rogue Wave SoftwareのTotalView
AMD AOCC
Vampir
GNUコンパイラ
519デフォルトの名無しさん
2022/01/02(日) 02:43:01.97ID:rJLs0hO4 https://www.hpe.com/jp/ja/product-catalog/detail/pip.hpe-cray-operating-system.1012842044.html
HPE Cray OSは、ハイパフォーマンスコンピューティング向けに機能強化された
SUSER Linux Enterprise Server (SLES) をベースとしています。
ふむ。SUSEのパッケージ全部動きそうだけど?
HPE Cray OSは、ハイパフォーマンスコンピューティング向けに機能強化された
SUSER Linux Enterprise Server (SLES) をベースとしています。
ふむ。SUSEのパッケージ全部動きそうだけど?
520デフォルトの名無しさん
2022/01/02(日) 03:09:01.94ID:zid9yl1I >>515
計測してから出直してww
計測してから出直してww
521デフォルトの名無しさん
2022/01/02(日) 10:42:41.52ID:8JZTRTCW522デフォルトの名無しさん
2022/01/02(日) 12:46:42.90ID:krHLUjqu523デフォルトの名無しさん
2022/01/02(日) 12:49:12.64ID:krHLUjqu524デフォルトの名無しさん
2022/01/02(日) 12:53:06.50ID:o9R7ffl7 >>472
LinuxでPerlで実験してみたが同じ問題は出なかったぞ。
$0 のファイルにプログラムを追加書き込みしてもその部分は実行されない。
シェルで同様に$0に追加書き込みしたらその部分は実行された。
LinuxでPerlで実験してみたが同じ問題は出なかったぞ。
$0 のファイルにプログラムを追加書き込みしてもその部分は実行されない。
シェルで同様に$0に追加書き込みしたらその部分は実行された。
525デフォルトの名無しさん
2022/01/02(日) 14:36:43.42ID:RXuS28pT526デフォルトの名無しさん
2022/01/02(日) 14:56:13.51ID:o9R7ffl7 だよなあ。eval や動的にソース読んで実行する個所以外は問題ないよなあ。
527デフォルトの名無しさん
2022/01/02(日) 16:04:09.36ID:rJLs0hO4528デフォルトの名無しさん
2022/01/02(日) 16:05:33.33ID:rJLs0hO4529デフォルトの名無しさん
2022/01/02(日) 17:18:56.44ID:uxcqsBQo530デフォルトの名無しさん
2022/01/02(日) 17:21:21.53ID:TQn3/Mee inodeを同じにして実験してみろ。
531デフォルトの名無しさん
2022/01/02(日) 18:18:29.48ID:krHLUjqu532デフォルトの名無しさん
2022/01/02(日) 18:23:43.20ID:krHLUjqu533デフォルトの名無しさん
2022/01/02(日) 18:38:07.35ID:9WH/m7VC 市販とは、必ずしも店頭売りとは限らんぞ?
534デフォルトの名無しさん
2022/01/02(日) 18:46:21.78ID:TQn3/Mee 通販か、楽天か。
535デフォルトの名無しさん
2022/01/02(日) 20:57:18.99ID:krHLUjqu >>533
それでもええから、どこや?
それでもええから、どこや?
536デフォルトの名無しさん
2022/01/02(日) 21:30:44.40ID:pRhI5t2q >>531
サチコ、それ代理店経由で市販ソフトを購入した言うんやで・・・
サチコ、それ代理店経由で市販ソフトを購入した言うんやで・・・
537デフォルトの名無しさん
2022/01/02(日) 21:51:30.45ID:TQn3/Mee GPGPU対応ソフトウェアはMacが一番多いそうだけどね。
意外だよね。
意外だよね。
538デフォルトの名無しさん
2022/01/02(日) 23:40:10.01ID:TQn3/Mee https://www.j-focus.or.jp/focus/application.html
市販ソフトは普通にあるみたいだよ。
市販ソフトは普通にあるみたいだよ。
539デフォルトの名無しさん
2022/01/02(日) 23:57:26.17ID:GoZUBNyV540デフォルトの名無しさん
2022/01/03(月) 00:01:22.65ID:3eYYTX8d ノード数で値段が変わるソフトはスパコンを念頭に置いてるんだな。
541デフォルトの名無しさん
2022/01/03(月) 02:53:21.64ID:NkK7sfLH >>532
ファイルやソケットや標準入力から読んで作った文字列を eval に渡すなんてのがあったらダメかも知れないが、
これはもうプログラムの作りが悪いと言えるな。SQLインジェクションと同じだし。
require でソース読むやつは事前にチェックされてないのではないかな?
use でのモジュール読み込みはコンパイルされるが。
ファイルやソケットや標準入力から読んで作った文字列を eval に渡すなんてのがあったらダメかも知れないが、
これはもうプログラムの作りが悪いと言えるな。SQLインジェクションと同じだし。
require でソース読むやつは事前にチェックされてないのではないかな?
use でのモジュール読み込みはコンパイルされるが。
542デフォルトの名無しさん
2022/01/03(月) 03:07:40.68ID:bmMFL9ij パール爺さんウザイ
543デフォルトの名無しさん
2022/01/03(月) 03:10:09.55ID:NkK7sfLH すまんのう。
544デフォルトの名無しさん
2022/01/03(月) 03:20:04.46ID:AIc8F3zq フルーツパーラー
545デフォルトの名無しさん
2022/01/03(月) 04:04:45.94ID:mfU61qLK パーラーリラパラリラ
546デフォルトの名無しさん
2022/01/03(月) 04:04:54.39ID:cOflznJy 正直、何となくまずいとは感じる程度のものだったけど解像度が上がって良かったと思ってる
単純なファイル操作だけど対象が巨大で時間がかかるってのは中々お目にかからない
単純なファイル操作だけど対象が巨大で時間がかかるってのは中々お目にかからない
547デフォルトの名無しさん
2022/01/03(月) 09:44:56.65ID:8bAzmZsa548デフォルトの名無しさん
2022/01/03(月) 10:01:01.93ID:mfU61qLK わかるなら説明しろ。そうやって回答から逃げる手だってバレバレだ。
549デフォルトの名無しさん
2022/01/03(月) 12:52:48.32ID:AKaSmxyk >>541
> require でソース読むやつは事前にチェックされてないのではないかな?
だからなに?
自分で書いてるやん。w
> これはもうプログラムの作りが悪いと言えるな。SQLインジェクションと同じだし。
ただし、実行時でなくロード時に読みきることは変わらないので、結局、シェルスクリプトほどのリスクはない。
> require でソース読むやつは事前にチェックされてないのではないかな?
だからなに?
自分で書いてるやん。w
> これはもうプログラムの作りが悪いと言えるな。SQLインジェクションと同じだし。
ただし、実行時でなくロード時に読みきることは変わらないので、結局、シェルスクリプトほどのリスクはない。
550デフォルトの名無しさん
2022/01/03(月) 16:05:02.85ID:Tvis+k5K >メモリサイズはpsでわかる
そんな装備で大丈夫か?
そんな装備で大丈夫か?
551デフォルトの名無しさん
2022/01/03(月) 19:01:29.66ID:mfU61qLK シェルスクリプトのリスクは高い
なぜなら普通やるだろ?
起動中にプログラム書き換え
な?
なぜなら普通やるだろ?
起動中にプログラム書き換え
な?
552デフォルトの名無しさん
2022/01/03(月) 23:36:43.52ID:Izj8gspx やんないよw
頭おかしいやろ
頭おかしいやろ
553デフォルトの名無しさん
2022/01/03(月) 23:42:21.51ID:Sz4S1PaG 結局シェルスクリプトが原因じゃなく
シェルスクリプト使いの低スキルが原因だった
シェルスクリプト使いの低スキルが原因だった
554デフォルトの名無しさん
2022/01/04(火) 00:46:56.04ID:GepGyN7D 自己書き換えシェルスクリプトは、昔に見た記憶があるな。
動作がちゃんとわかってれば、有用な機能として使えるんだろ。
動作がちゃんとわかってれば、有用な機能として使えるんだろ。
555デフォルトの名無しさん
2022/01/04(火) 04:39:07.32ID:mpSUdZEa 例えばWindowsのログオンスクリプトとかに使われるバッチファイルもアトミックな更新が必要になるね
そういう場合はログインする可能性のない夜間とかを狙って更新したりする
スパコンのアホは、よりによってバックアップ中にバックアップのスクリプトを更新しようとした
上の例で言えば一番ログインが試行される始業時間帯とかを狙ってわざわざ更新するようなもの
どれだけ愚かな行為か想像できよう
そういう場合はログインする可能性のない夜間とかを狙って更新したりする
スパコンのアホは、よりによってバックアップ中にバックアップのスクリプトを更新しようとした
上の例で言えば一番ログインが試行される始業時間帯とかを狙ってわざわざ更新するようなもの
どれだけ愚かな行為か想像できよう
556デフォルトの名無しさん
2022/01/04(火) 05:34:07.92ID:A3JfSOSv OSやファイルシステムによっては出来ないかも知れないが、プログラム動作中に新バージョンへの入れ替えを
行っても動作しているプロセスはそのまま動かし続けて影響させず、次回起動時から新しい方が動く方式にして
おけば良かった。例えば Linux や UNIX 系 OS ならシンボリックリンクの指す先を変えることでこれは可能だ。
Windowsではどうやるか知らないがシンボリックリンクはあるようなので多分出来るんじゃないだろうか。
行っても動作しているプロセスはそのまま動かし続けて影響させず、次回起動時から新しい方が動く方式にして
おけば良かった。例えば Linux や UNIX 系 OS ならシンボリックリンクの指す先を変えることでこれは可能だ。
Windowsではどうやるか知らないがシンボリックリンクはあるようなので多分出来るんじゃないだろうか。
557デフォルトの名無しさん
2022/01/04(火) 06:04:36.10ID:mpSUdZEa >>556
Windowsだとリンクを一旦削除してから張り直す事になるから無理だろうね
リンク先が一旦消えるから、掴んでたバッチファイルは読み込みが途切れるか、
そもそも誰かが掴んでる状態ではリンクの削除に失敗するかどっちか
Windowsだとリンクを一旦削除してから張り直す事になるから無理だろうね
リンク先が一旦消えるから、掴んでたバッチファイルは読み込みが途切れるか、
そもそも誰かが掴んでる状態ではリンクの削除に失敗するかどっちか
558デフォルトの名無しさん
2022/01/04(火) 09:11:02.07ID:KoJ0HNB1 OSとしてはプログラムを実行中に入れ替え可能だとしても
アプリがそのように作られてない可能性はなくならない
アプリがそのように作られてない可能性はなくならない
559デフォルトの名無しさん
2022/01/04(火) 11:24:49.85ID:K01QBlyF 実行中に上書き更新しないのは当たり前
undefinedになった場合でも全データを削除しないように作るのも当たり前
どちらも当たり前だと思ってないやつが多数いるのがシェルスクリプト特有の問題
undefinedになった場合でも全データを削除しないように作るのも当たり前
どちらも当たり前だと思ってないやつが多数いるのがシェルスクリプト特有の問題
560デフォルトの名無しさん
2022/01/04(火) 11:53:26.50ID:+L/8HzOo 「全スクリプトを{ ...; exit; }で囲え」なんていうキチ・・・エッジな人もいる
561デフォルトの名無しさん
2022/01/04(火) 14:35:05.73ID:5xHtBJHw コマンドプロンプトとかいうゴミみたいなシェルは実行中にメモ帳から普通に上書き保存できるしbashみたいな更新問題がある
構文解析が闇鍋状態だからまともに(...&exit)でガードする気も起きん
構文解析が闇鍋状態だからまともに(...&exit)でガードする気も起きん
562デフォルトの名無しさん
2022/01/04(火) 14:40:41.27ID:5xHtBJHw 全スクリプトを{ ...;exit;}というとヤバいように見えるけど
... #オプション解析とか
main(){ ...;}
{ main "$@"; exit;}
とでもすれば多くの更新事故は防げると思う
... #オプション解析とか
main(){ ...;}
{ main "$@"; exit;}
とでもすれば多くの更新事故は防げると思う
563デフォルトの名無しさん
2022/01/04(火) 14:56:49.79ID:/LDsiUgA564デフォルトの名無しさん
2022/01/04(火) 14:57:43.78ID:/LDsiUgA565デフォルトの名無しさん
2022/01/04(火) 14:58:27.64ID:/LDsiUgA あ、コマンドプロンプトの話か。そっちはしらん
566デフォルトの名無しさん
2022/01/04(火) 15:13:42.85ID:MrAZHCc6567デフォルトの名無しさん
2022/01/04(火) 15:22:08.88ID:/LDsiUgA 防げないことにしたいやつも多いんだよなぁw
568デフォルトの名無しさん
2022/01/04(火) 16:48:36.33ID:96ZsKrQo569デフォルトの名無しさん
2022/01/04(火) 17:17:13.38ID:cDPvJZXV {}でくくった時の読み込み方は実装依存じゃなく仕様で保証されてる?
ここを読んだけどよく分からなかったや
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_02_03
ここを読んだけどよく分からなかったや
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_02_03
570デフォルトの名無しさん
2022/01/04(火) 21:09:09.26ID:64zZ84Fs >>568
無理
無理
571デフォルトの名無しさん
2022/01/04(火) 22:51:36.65ID:GepGyN7D >>568
sourceすりゃできんじゃないの?
sourceすりゃできんじゃないの?
572デフォルトの名無しさん
2022/01/04(火) 23:40:25.31ID:AW7Xm3ow >>571
やってみたら?
やってみたら?
573デフォルトの名無しさん
2022/01/05(水) 02:14:02.36ID:gXRPzTKb {} の中にsource入れとけばいいだろ
他のスクリプト言語と一緒
他のスクリプト言語と一緒
574デフォルトの名無しさん
2022/01/05(水) 02:56:20.38ID:5qnDyK1z いいわけないじゃん
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 農民の末裔って畑持ってるの?
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- 青髭がない男がいたんですよ~
- 【高市早苗】サナ安・ユーロ円181円突破 [115996789]
- ㊗157円 [194819832]
