[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2ch.scのread.cgiへ]
Update time : 02/23 17:28 / Filesize : 192 KB / Number-of Response : 636
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 05:22:16.82 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。
 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています
 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/
 (左上の「Shell & Utilities」 から参照することができます。)
・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。
  src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した

280 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/01(月) 22:58:36.48 .net]
$ eval "<"
bash: 予期しないトークン `newline' 周辺に構文エラーがあります

これってどういうこと?

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 03:17:30.34 .net]
予期しないトークン が出てきたんだろ

282 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 09:29:15.67 .net]
そりゃ < をbashに渡すから
$ <
と同じ結果になる訳で

283 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 11:20:08.32 .net]
おふたりありがとう
たしかに
$ <
と同じ結果になった
でもnewlineというのはどこにも記述してないのにどうして `newline' なんだろう?と

284 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 11:55:19.88 .net]
英語の勉強をしましょう

285 名前:名無しさん@お腹いっぱい。 [2021/03/02(火) 12:14:10.37 .net]
>>278
パーサーが入力の「末尾」も改行文字と同じに扱っている
または入力末尾に改行文字を追加してからパースしている
といったところじゃないかな

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 12:48:18.17 .net]
あー、そういうことか、なるほどわかりました
日本語の中に突然newlineが出てきて、しかもわざわざクォートされてるからてっきり予約語かと思い込んでいた
というか目に見えない予約語なんだろうけど
ありがとうございます

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/02(火) 16:21:26.89 .net]
わかっとらんやんけ!

288 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/14(日) 10:53:57.86 .net]
>>165
win鯖管か個人用途のみで使うなら7系はいいものだと思うけど、数百MB食うpwshがunix界隈で受け入れられるとはとても思えない
まあ新興非b系シェルは駆逐されるかもしれんが
そもそもまだMacとlinux主要ディストロにしか公式対応してないので

IT職でなく、単にツールキットを享受できればいい人ならpwshでいいと思うよ
たとえ趣味や仕事でも(だけど時代遅れな)b系シェルの技能は汎用性あるから、あえて普段から使うのも勉強になるよ



289 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/14(日) 10:59:38.87 .net]
あと怒涛の互換性ブチ壊しバージョンアップ中だから、せっかく書いても一年で動かなくなる
まだソフトウェア開発には使えないのが現状

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/14(日) 17:45:37.35 .net]
シェルスクリプトの特徴は「人間がそのまま読むことが出来る1行1データのテキストを扱う」という点なんだわ
シェルスクリプトは分かりづらいからPerlやPythonを使うとか言ってるやつがいるけど
1行1データのテキストを扱うならば、シェルスクリプトが一番うまく処理できる
正確に言えば、シェルスクリプトだけじゃなくてUNIX系のCLIコマンドがそれを前提としたインターフェースになってる
CLIコマンド=シェルスクリプトのAPIなんだよ

pwshがunix界隈で受け入れられないのは、APIが全く違っていて互換性がないから
API=CLIコマンドなので、プログラマの多くはAPIコマンドを知ってる

シェルスクリプトがいつまでたってもPerlやPythonに置き換わらないのも
それらの言語はCLIコマンドというAPIを使わないから
CLIコマンドを使うならば、シェルスクリプトより簡潔に書ける言語が存在しない

291 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/31(水) 10:37:33.90 .net]
シェルなんだから外部コマンドは呼べるし、テキストも扱えるしそんなに変わらんのでは
そんなに変らんということはすなわち、わざわざunix環境で使うモチベとしては弱いと思うが
ドザーが流行りのwsl使うのには便利なんじゃね

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/03/31(水) 10:41:33.46 .net]
昔ながらのwinコマンドは大体外部コマンドだけど、pwshはほとんど組み込みコマンドなのがなあ
slsとか分けて提供してくれればbetter grep/findとして個人的には使いたいんだが

293 名前:名無しさん@お腹いっぱい。 [2021/03/31(水) 22:49:44.43 .net]
>>286
Windowsのコマンドはスクリプトから使うことを考慮されてない物が多い
例えば、copyコマンドは、copyすると
1 個のファイルをコピーしました。
とか人間のためのメッセージが出てくるからテキスト処理に向かない

バッチファイルは人間が操作するのと同じことただやるだけ
(出力を加工しない)なのでバッチファイルから使う分にはそれでもいいが
シェルスクリプトのように出力と入力をつないで処理することには向いていない

だからpwshはWindowsのコマンドを呼び出さない
一方pwshで使うAPIは1行1データのテキストにはなってないし
普段使ってる外部コマンドではない
どちらかと言えばPythonなどの関数に近い

Unix/Linuxの外部コマンド・・・1行1データのAPIインターフェースでCLIからも参照する
pwsh、Python、多くの言語・・・引数と戻り値のAPIインターフェースで言語内から参照しない

APIのインターフェースが大きく違っていて
Unix/Linuxの外部コマンドは改行の扱いが難しいなどの制限があるが
その制限の範囲内ではスクリプトからも人間からも使いやすくて
他の言語には置き換えることが出来ないんだよ

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/01(木) 00:40:09.95 .net]
Windowsでシェルスクリプト動かそうとすると、パスの\のエスケープで気が狂いそうになるから
その辺捨てたパワーシェルの割り切りは、それはそれで理解できるけどなー

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/01(木) 01:14:08.37 .net]
>>289
Windowsでシェルスクリプトって何を使ってるの?
パスの\のエスケープなんかしたことないよ

pwshはスクリプト言語としては悪くないと思うよ
ただPythonなんかと同じようなプログラミング用の言語ということ

Pythonにも当てはまるけどプログラミング用の言語は
シェルスクリプトとはスタイルが異なる。
シェルスクリプトは端末操作に特化した言語だから
プログラミングはしにくいが端末操作は得意

まあPowerShellでも普段からコマンドレット使って端末操作してます。
pwshでもコマンドレットをメインで使いますって人なら
シェルスクリプトと同じような感じに見えるかもしれないけど
そんな人いるのかな?

296 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/01(木) 03:02:34.14 .net]
>>290
Windowsはダブルクォートの直前にバックスラッシュがある場合のみエスケープとして扱うということに一応なってる。
しかし実はWindowsではダブルクォートも引数の区切りも解釈するのはアプリケーションの仕事なので実は上記のように解釈される保証はない。

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/01(木) 06:04:39.51 .net]
>>291
アプリケーションの仕事って言うなら、
パワーシェルから呼び出したときも同じじゃん・・・

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/14(水) 16:39:38.83 .net]
int main( int argc,char **argv){ printf("%s\n",argv[1]); return 0;}
みたいなプログラムを書いて
a.exe "abc xyz"
みたいに実行しても処理系によって出力が
"abc xyz"
だったり
abc xyz
だったり
"abc
だったり…そんな時代もあったね。



299 名前:名無しさん@お腹いっぱい。 [2021/04/17(土) 04:15:34.67 ID:1C2XvsMVm]
第一生命HD、副業解禁 約1万5000人対象
https://www.nikkei.com/article/DGXZQODF226QU0S1A120C2000000/
第一生命HD、副業解禁 1万5000人対象―大手生保初
https://www.jiji.com/jc/article?k=2021020301353&g=eco
IHI、国内8000人の副業解禁 重厚長大企業も転機
https://www.nikkei.com/article/DGXZQODZ171SS0X10C21A1000000
IHI、社外兼業を解禁 社内副業もルール化
https://www.jiji.com/jc/article?k=2021012100772&g=eco
50代に時給5000円の求人も。都会の会社員、“地方企業でリモート副業”が人気
https://nikkan-spa.jp/1711157
「週休3日制」導入は拡大するのか? 働き方が多様化する社会で生き抜く力
https://news.yahoo.co.jp/articles/2887cf226cf6f608ff511ee9e349fd6518d4311f
スカイマーク、週休3日制へ 来春にも事務職対象
https://www.chunichi.co.jp/article/176961
週休3日制で何が変わる?休みが増えるメリット・デメリット
https://career.joi.media/tips/2020/11/06/24138/
週休3日制に賛成?反対? 東芝の模索
https://www.nhk.or.jp/ohayou/biz/20200701/index.html

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 16:39:52.31 .net]
SSDがいっぱいになってきたのでfind

301 名前:ナ各binを周りfileが吐いたリストをunstripped(だったか?)でgrep&stripするスクリプト書いた
半分くらいになるのなこれ…
今の所不具合は出てないからヨシ
おすすめ
[]
[ここ壊れてます]

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 16:48:14.77 .net]
>>290
ubuntuだけどbashからpwsh -cで便利なツールとして使うのがベスト
多少最適化されてそうなapt提供のプレコンパイル版でも60MiBあるから配布時依存に加えるのは厳しいのが悩み
私的ハックにはすごく重宝

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 16:53:51.68 .net]
>>289
`をエスケープに選んだのは英断だと思う
m4と協調させようと思うと壊れるけど、まあm4のクオートは簡単に変えれるし満足

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 16:55:18.39 .net]
>>295
golang製のバイナリってstripすると壊れるんじゃなかったっけ

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 17:07:12.66 .net]
>>298
マジかー!でも何がgoとか把握してない…
内蔵HDDの方はテラ余裕なのでそっくりコピーしてある、万が一あってもそっちからブート&コマンド全て使えるから問題起きてからでもいいかな…

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/20(火) 18:04:12.33 .net]
学習コスト高そうだから何でも賢くキャストしてくれるキャスト器として使ってるわ
[xml]'<foo>...'くらいのカジュアルユース
年だからjqとか付いてけないしjsonもキャストして.付けてるタブ補完連打でアクセス
ただの型コレクションとして気兼ねなく使えばいい

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/21(水) 20:07:40.11 .net]
>>300
歳のせいにするな。お前の能力の問題だ。

308 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/21(水) 22:14:14.03 .net]
噂のpwsh試してみたけど、とりあえずコマンドライン作業中の電卓代わりにはpythonよりはいいな
子シェルだからパス通ってて、普通に演算子と数学関数が下拵え無しで使えるってだけだけど
64KBと打つと65536を返してくるのは遊び心かな?

まあスレ違いだねごめん



309 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/21(水) 22:37:37.09 .net]
電卓代わりでbc/dc思い出して遊ぼうと思ったら今時のlinuxにはdcはいってないのね
頭の体操にいいのに残念

310 名前:名無しさん@お腹いっぱい。 [2021/04/22(木) 09:18:28.19 .net]
普通パッケージぐらいは用意されていて入れれば入るんじゃない?
deb系なら apt-get install dc で使える

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/22(木) 18:02:08.57 .net]
LLのREPL使えばええやん

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/04/25(日) 11:29:37.47 .net]
for i in "予定1" "予定2" "予定3"
do
[ $i = "予定1" ] && echo "予定1"; sleep 3
[ $i = "予定2" ] && echo "予定2"; sleep 3
[ $i = "予定3" ] && echo "予定3"; sleep 3
done

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/01(土) 09:40:38.84 .net]
今日のIDすごいwww

314 名前:名無しさん@お腹いっぱい。 [2021/05/02(日) 22:37:50.92 .net]
しらんがなー

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/03(月) 22:39:37.02 .net]
シェルスクリプトはperl にとって代わるCGIの記述言語って本当すか?

316 名前:名無しさん@お腹いっぱい。 [2021/05/04(火) 00:29:14.02 .net]
>>309
そもそもCGIはすでに廃れてるって知ってる?

317 名前:名無しさん@お腹いっぱい。 [2021/05/04(火) 00:30:10.82 .net]
今どき本格的なサーバー側アプリをCGIで作るなんてないわけで
まあ簡単なツールぐらいならやるかもしれんけどさ

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/04(火) 01:58:13.24 .net]
>>311
知らんのだがCGI以外でどう処理してるの?ジャバスクリプト?



319 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/04(火) 07:10:50.01 .net]
>>312
WebアプリケーションフレームワークがWebサーバ機能を持っていて、フロントエンドのWebサーバからリバースプロキシして使うのが多いかな。
だからWebサーバとアプリケーションの接続インターフェイスと言う感じじゃ無いんよ。

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/04(火) 17:00:00.58 .net]
えっ、そうなの?
perlじゃ無くCGIがオワコンで、マトモwebサービス作成にはもう使われ無いのね。

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/06(木) 02:07:50.66 .net]
perl自体がオワコンかどうかの話は別として歴史の話をすると

初期はウェブサーバー+perlスクリプト、つまりCGIでウェブシステムが作られていた
もう2000年とかその頃の話よ。とほほのなんとかとかKentなんとかとかが幅を利かせていた
当時のプロ(ホームページ制作会社)でもそういったCGIを使っていた時代

その後はPHPが登場したが、これはウェブサーバーにPHPをモジュールとして組み込む
mod_phpが利用されていた。アクセスのたびにperlスクリプトを呼び出さないから速い
同じようにmod_perlというのもあった。
この頃のプロといえば自社でサーバーを保守管理するウェブサービス会社だったかな

その後から現在はアプリ自身でウェブサーバーとして起動するようになった
RailsとかPythonとかはそれが主。もちろんphpでもperlでもこの仕組が使える
クラウドの時代のプロのシステムはほぼこれ。もちろん今もホームページ制作会社はあるけど
ウェブサービス作ってる会社ってもうこんな感じじゃないでしょ?

アプリにウェブサーバーが内蔵されてると言っても、それはアプリに最適化されていて
静的コンテンツを配信するのには適していないから
>>313のいうように前段に普通のウェブサーバー(nginxやapache)を配置して
アプリ用のURLだけリバースプロキシでWebフレームワークにわたす仕組み

シェルスクリプトは、ブラウザにモジュールとして組み込んだり
シェルスクリプト自身をウェブサーバーにすることはできないからCGIオンリーで使うしか無い
と思ったらmod_bashなんてあるのなw

まあアクセス数が少ない個人用のシステムとか、特定のサーバーからアクセスしない
死活監視用のエンドポイント程度になら使っても良いんじゃね?

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/06(木) 11:37:17.18 .net]
ネタかなんかなの?このくだり

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/07(金) 04:02:34.96 .net]
いや、マジレスだろ。

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/07(金) 09:52:15.00 .net]
時系列はおかしいけども、仕組みとしては大体合ってるし、いいんじゃない?

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/08(土) 11:58:10.94 .net]
間違ってると言うやつほど
どこが間違っているかを言わない

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/08(土) 19:01:34.99 .net]
しかしこれは CGI が使われなくなったと言われれば違和感はある Web サーバーがリバースプロキシに変化してアプリが Web サーバーを持ったに過ぎないのだろう

CGI とは Web サーバーから実行ファイルを走らせる技術だよね違うのかな

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 02:29:54.79 .net]
>>320
アプリケーションにHTTPヘッダを環境変数で渡す方法などを定めたものがCGI、だからInterfaceなの。
この方法で渡していないならそれはCGIではない。

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 08:40:11.68 .net]
もともとリバースプロキシの機能はウェブサーバーにあったのだから
どちらかと言えばウェブサーバーをリバースプロキシだけに使うように
使い方が変化してって言う方が適切だね

ちなみに開発時だとウェブサーバーはあまり使わない
ウェブサーバーとしての機能や性能は必要ないので
アプリ内臓の簡易ウェブサーバー機能で十分だから



329 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 08:52:57.10 .net]
>>320
> CGI とは Web サーバーから実行ファイルを走らせる技術だよね違うのかな
一番の違いはアプリが常駐しているかどうか

CGIはアプリが常駐して無くてアクセスのたびにコマンドを実行する
このコマンドを実行するっていうのはかなり重い処理なのでパフォーマンスが出ない

特にシェルスクリプトなんか外部のコマンドを組み合わせて処理するものだから
1アクセスでシェルスクリプト本体の実行の他に
sedコマンド+grepコマンド+awkコマンド+jqコマンド・・・みたいになるから
Perlで作るよりも確実にパフォーマンスが悪くなる。Perlよりも悪い選択
それに対してCGIじゃない仕組みはサーバーマシン起動時に1回コマンドを起動するだけ

もし誰かに、これからのCGIはシェルスクリプト!シェルスクリプトでもこれだけの速度が出る!って
郵便番号から住所を検索するデモをみせてシェルスクリプトでシステム開発させようと洗脳する組織団体にそそのかされていたら
それアクセスが多い時にパフォーマンス出ますか?他の言語とベンチマークして比較していいですか?って聞いたら良いよ
郵便番号のデータなんてたかだか十数MBしかないしSSD使ってりゃ0.01秒未満で読み込めるのは当たり前
そんな低負荷なデモを数回見せた程度でパフォーマンスの検証なんてできやしない

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 11:14:52.20 .net]
>>323
fastcgiってcgiと呼んじゃダメなん?

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 11:52:38.01 .net]
>>324
FastCGIはCGIの環境変数や標準入出力の内容をカプセル化してsocketで通信するように定められているから無関係ではないんだけど、
環境変数とか標準入出力を使っているわけじゃないからやはりCGIでは無いと思うよ。

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 14:19:11.63 .net]
そういやFastCGIなんて技術もあったな
あれも「プロセス起動が遅い」という問題を
プロセス終了をさせずにプロセスを使い回すことで
解決する技術なんだよな

シェルスクリプトでそれがやれるかっつーと無理だろうな
いやwikiによればhttps://ja.wikipedia.org/wiki/FastCGI
名前付きパイプもサポートしてるようだからから不可能じゃないのか?

でもまあシェルスクリプトから呼び出すコマンドは
どちらにしろプロセス起動になるわけで
シェルスクリプトで全部実装するならまだしも
普通のシェルスクリプトではあまり効果がないだろうな

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/09(日) 14:26:02.10 .net]
英語だし読む気はないけどなんかそういう技術があるみたいだw

FastCGI shell script
https://stackoverflow.com/questions/4685045/fastcgi-shell-script
ここの Look at "Writing agents in sh: conversing through a pipe"

まあ一般的にシェルスクリプトでFastCGIは無理(無意味)やでって書かれてるようだね

334 名前:名無しさん@お腹いっぱい。 [2021/05/09(日) 14:40:26.25 .net]
んでさ>>309に聞きたいんだけど

> シェルスクリプトはperl にとって代わるCGIの記述言語って本当すか?

ってどういう流れで誰に聞いたの?

二十年ぐらい前にコンピューターにちょっと詳しいだけの高校生や大学生の
会話で出てきた話だってのならわかるけどさ
今のウェブ開発ではCGIという単語自体でてこない

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/14(金) 08:14:28.21 .net]
>>328
年寄りと話すと、API叩くことをCGI呼び出すと表現するよ

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/17(月) 12:58:38.74 .net]
アクセス数が少なければ今でもcgiで十分。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/17(月) 19:57:40.30 .net]
アクセス数少ないのが前提w

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/17(月) 21:14:15.17 .net]
知り合いだけのサイトもありますし



339 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 00:26:19.32 .net]
>>332
仕事では使い物にならないって意味だよ

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 00:27:32.81 .net]
レガシーシステムの改修でもないかぎりCGIなんて出てこないし
新規でCGIとかいい出したら、そんな会社は切り捨てた方が良い

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 09:35:06.09 .net]
PHP fpm ってよく使われてるように思うけど技術的には Fast CGI なんでしょ?

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 12:12:30.96 .net]
cgiスレになって無いか?

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 14:51:57.87 .net]
0埋めした2桁数字文字をdeclare -iの変数に入れると時々エラーになるので
ぐぐったら0埋め

344 名前:数字は8進数扱いって、何か面倒だなぁ... []
[ここ壊れてます]

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/18(火) 16:12:30.34 .net]
頭0は8進数ってC言語とか昔から使われてるけど
最近の言語は頭0を8進数とみなさないように変わってきてる気がするね

2桁とわかってるならdeclare -i i="${var#0}"でいけるよ
そうでない場合はdeclare -i i="10#$var"でいけるかな
bash以外だとダメかもしれんけど

346 名前:名無しさん@お腹いっぱい。 [2021/05/19(水) 02:39:42.52 .net]
ありがとうございます。
expr でどうにか凌ぎました。

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 09:22:05.13 .net]
exprは遅いぞ

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 09:42:12.88 .net]
遅いけど、どんな環境でも



349 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 10:08:35.53 .net]
だからexprに一切メリットないって

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 18:39:51.53 .net]
計算するときにコンソールで expr 以外に何か良い方法ありますか

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 18:40:31.58 .net]
$((1+2)、bc、dc
なんでもあるやろ

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/19(水) 22:49:05.88 .net]
awkで計算しろ

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 08:04:37.20 .net]
>>328
シェルスクリプトでCGIとかきくとユニケージを思い出すな
あ、脱ケージだっけwww

あれほど酷い開発手法はないと思うね

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 09:04:51.56 .net]
>>346
いや、あれオモロいで。
ワンライナー繋げてwebアプリ。
小規模社内オフィス用に最適w

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 09:10:53.80 .net]
誰かPOSIX原理主義者とユニケージの関係教えてくれ

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 10:27:21.13 .net]
どちらも秘密主義だからな。俺も少し興味があるが
非公開の独自技術には興味なくて裏で糸を引いているやつらに興味がある

wikipediaを見る限りUSP研究所と金沢大学が手を組んでるっぽい
USP研究所がユニケージという開発手法で怪しげなビジネスをしていて
それにコネかなんかで金沢大学が手を貸して箔をつけてる感じ
もしくは金沢大学関係者が作ったのがUSP研究所なのかもな

POSIX原理主義者はUSP研究所もしくは金沢大学の関係者だと思われる
構成員の中の幹部クラスで多分3人ぐらいしかいない
ただ引っかかるのはユニケージとPOSIX原理主義が矛盾しているという点
POSIX原理主義はPOSIXのコマンドだけを使うと言ってるがユニケージは独自コマンドを押し付けている
ユニケージ=シェルスクリプト主義でそこから分岐したのが原理主義なのかもしれないな

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 10:30:31.60 .net]
>>347
ネタとしてのオモロイだなw
東京ハンズで大規模対応でクラウドに移行して
それに対応できなくなって今では闇とか負債と言われてるんだっけな

https://www.hands-lab.com/tech/t5600/
ここにはBashのフレームワークってかいてあるな
BashってことはやっぱりPOSIX原理主義とも違うな

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 11:00:28.58 .net]
>>350
完全菜食と牛乳、卵は許すのような違いか。

ユニケージにベンダーロックインされて地獄を見るw
大規模化の可能性のある場合は、このネタシステムを使ってはいけないな。



359 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 11:19:43.21 .net]
POSIX原理主義者「シェルスクリプトは遅くない!なぜなら郵便番号から住所を検索なんで一瞬で探せる!」

※CSVファイルは解凍した状態でたったの12MBです。

どんだけ小規模低負荷前提で吠えてるのかとw

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/20(木) 16:03:03.24 .net]
sql文を組み立てるシェルスクリプトを書きます

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 21:36:49.34 .net]
シェルスクリプトは連想配列が使えるから
原理的には高速
オーバーヘッドがない分
他の言語より早い場合が多いと思う
保守しにくいけど

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 21:43:40.33 .net]
オーバーヘッドって何のことだ?

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 22:08:05.49 .net]
ファイルサイズに依存するオーバーヘッドはメモリ上に載せる部分じゃろ?
全部載せてしまえば定数時間のはずだけど、上限とかなかったっけ

載せないで逐次処理なら固定長レコード上に添字でジャンプのデータベースには勝てない

載せても多分勝てないけど

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 22:16:12.19 .net]
英辞郎くらいなら適当に整形してgrepで引いてるな、5秒くらいかかるが…

毎回読み込まず、&で起動して配列抱えたままsleep、named pipeをポーリングてもらうか

365 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 22:31:20.56 .net]
前から舐めるから時間かかってるだけだな、見出し語辞書引きなら既にソートされてるので人力二分探索が楽か
イニシャルでファイルを8つくらいに分け、引数見て探すファイルを割り振るだけで十分一秒切れる

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 23:18:21.57 .net]
>>354 >>356
問題はメモリ(連想配列)に載せた後
1件のデータを引いたら、そのまま終了してメモリを破棄するしかない
つまり1件検索する毎に全データを連想配列に読み込むw

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 23:19:33.97 .net]
>>358
普通にSQLiteでも使ったほうが良いのでは?w

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/21(金) 23:33:05.93 .net]
>>354
> シェルスクリプトは連想配列が使えるから原理的には高速
モダンな言語で連想配列使えない言語ってそんなにないと思うが



369 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 00:00:45.90 .net]
POSIX準拠だと連想配列ないけどねw
eval使えばそれっぽいことはできるけど

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 00:17:17.67 .net]
>>357
一つのプログラムを常駐させ、もう一つのプログラムから問い合わせるってこと?
それってシェルスクリプトだけで実現できるの?

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:03:30.66 .net]
>>360
普段はdico(d)とかdict(d)使ってるよ、この用途には特化してる分sqlite3なんかより遥かに高速で優れてる

ただ、自前の辞書に索引付けてdictのdbに変換…ってのは面倒なんだよ
英和の出来合いdbってdict.orgとかでも提供されてないしな
テキスト形式の単一辞書(~100MB)をgrep、数秒のラグなら十分許容できるだろう

取り敢えず事足りればいいんだよって思想です

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:08:46.46 .net]
>>363
デーモンなんかの実装は大体そうでしょ
mkfifoでファイルのように読み書きできるパイプ作れるでしょ?
無限whileループの中で1秒程度sleep、パイプに書き込まれてるかreadでチェック(所謂原始的なポーリング)

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:29:18.62 .net]
追伸>>365
プロセスの関係について答えてなかった
クライエントがコマンドライン引数を単にnamed pipeへ書き込むだけのシェルスクリプトでいいです
というか必須でないです
ぶっちゃけやることはecho query >fifo

それを$eiji queryと書けると分かりやすいというだけですね

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:36:55.49 .net]
老婆心かもしれないけど、常駐シェルスクリプトなんて何ら特別なものでないよ
常駐しないシェルスクリプト=exitの記述が存在している、あるいはeofに達するもの
常駐できるシェルスクリプト=signalやらで殺さなければexit/eofに達しないモノです

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:44:59.50 .net]
shを常用するやつは居るが
流石にed常用するやつは居らんな

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 02:59:57.65 .net]
edは生の改行文字食わせる必要あるし、sedのように;で区切れないから、コマンドラインから使いにくい…

printf %s\\n cmd1 cmd2 ...をeasyedとか名付けておけば、easyed cmd1 cmd2 ...で使いやすくなるね

ただ、sedやawkでカウンタ設定して何行後の処理を指定するような処理を書いている事に気づいたら、そういう処理はedの領分
前後の相対アドレスを+nのように簡潔に指定

377 名前:ナきる

あと、diffがedのコードを吐けるというのもあって、それをテンプレにして弄るとバッチ的な処理はより早く書けると思う
[]
[ここ壊れてます]

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 05:16:06.47 .net]
>>366
問題はデーモン側じゃないよ。
起動するのも、named pipeに書き込むのもそれはできる
問題は、その後どうやって情報を受け取るのか?って話



379 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 05:16:37.76 .net]
× 起動するのも
○ 常駐するのも

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2021/05/22(土) 05:19:29.71 .net]
もっと具体的に言えば、POSIX準拠だと
シェルスクリプトは双方向パイプを使えない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<192KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef