ついにWSL2が登場したぜー。こりゃ完全にLinuxだ。ヒャッハー!WSL最高!開発にLinuxは使わねぇー。Windowsで開発してLinuxは動かすだけや!
WSL2アーキテクチャ
https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html
WSL 2では、仮想マシン環境が起動し、bashがコマンドを受け付けるまで2秒程度という速度で起動できる。
このため、コマンドプロンプトなどからwsl.exeなどを使ってbashコマンドを処理する時間は、
現在のWSL 1とほとんど変わらない。また、本物のLinux実行環境であるため、
これまで正しく動作できなかったアプリケーション、例えばコンテナシステム(Dockerなど)や
ユーザーファイルシステム(FUSEなど)も動作させることができる。その上で、現在のWSL 1と同等の機能と使い勝手を実現するという。
WSL 2はWSL 1を置き換えずに併存する
WSL 2が登場したからといって、WSL 1は廃止になるわけではなく、引き続き利用可能である。
ファイル共有プロトコル「9P」でWSL 1との互換性を確保
このように、WSL 2とWin32環境の間のファイル共有は、どちらも9Pを使うことになる。
また、WSLからWin32プログラムを起動する「Win32相互運用性」では、最初にWSL側で、
実行ファイルを判別する必要がある。具体的には、実行ファイル先頭のマジックナンバー
(Win32ではMZ)を見て、LinuxのELF64か、Win32の実行ファイルなのかを判断する。
【Bash】Windows Subsystem for Linux【WSL】7
https://mao.5ch.net/test/read.cgi/linux/1579395785/
探検
【Bash】Windows Subsystem for Linux【WSL】8
■ このスレッドは過去ログ倉庫に格納されています
2020/05/29(金) 17:58:21.78ID:N31NEDSz
2020/07/07(火) 20:36:13.77ID:re05twJJ
>>225
\ls
\ls
2020/07/07(火) 20:40:20.05ID:JVYy2LEm
ctags
2020/07/07(火) 20:41:16.60ID:re05twJJ
>>236
emacs
emacs
2020/07/07(火) 22:43:59.55ID:2jBYURUv
>>236
究極的にはWindowsでLinuxと同じ環境ができてしまったら
WSLが必要ないのは当たり前
問題は同じ環境を作る手間
例えばPythonを複数のバージョンインストールして
切り替えたいと思ったらどうするかね?
そういう仕組みを作れば出来る。
その仕組みを作るまでが大変。
WSLは既存のLinuxの仕組みをそのまま使える
究極的にはWindowsでLinuxと同じ環境ができてしまったら
WSLが必要ないのは当たり前
問題は同じ環境を作る手間
例えばPythonを複数のバージョンインストールして
切り替えたいと思ったらどうするかね?
そういう仕組みを作れば出来る。
その仕組みを作るまでが大変。
WSLは既存のLinuxの仕組みをそのまま使える
2020/07/07(火) 22:45:11.48ID:vKQ2n6hj
てすと
2020/07/07(火) 22:47:02.63ID:8+syWFqb
2020/07/08(水) 07:27:50.65ID:jsOqEhM+
>>236
w3m, vim, less, sed, awk, zip, translate-shell, html2text, wget, zsh, tmux, ssh, gsl, gmp, gprof, make, GNU R, Julia, GNU coreutils
w3m, vim, less, sed, awk, zip, translate-shell, html2text, wget, zsh, tmux, ssh, gsl, gmp, gprof, make, GNU R, Julia, GNU coreutils
2020/07/08(水) 07:30:16.74ID:CBdq2r1b
>>234
わざわざそこまでするなら別のターミナル使えばいいのに
わざわざそこまでするなら別のターミナル使えばいいのに
245login:Penguin
2020/07/08(水) 08:53:56.96ID:DJr4ISUL 日本語辞書mecab-ipadic-neologdをMecab用から検索エンジンlucene用に変換するのにWSLを使ってる。
https://github.com/neologd/mecab-ipadic-neologd
https://github.com/neologd/mecab-ipadic-neologd
2020/07/08(水) 10:48:36.58ID:caZYZiep
おれはlynxをファイルエクスプローラとして使いファイルを書いたり変更したりしてる
lynxにemacsを設定してるから使い易い
lynxにemacsを設定してるから使い易い
2020/07/08(水) 13:12:22.34ID:SDDjbsTE
>>236
漏れは、自分のPC 内のWindows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使って、
Linux側に、プロジェクトを作っている
Windows側からのブラウザアクセスは、
VSCodeの拡張機能・open in browser ではローカルファイルアクセスとなるので制限されるが、
VSCodeの拡張機能・Live Server では、サーバーを立ててのアクセスとなるので制限されない
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
漏れは、自分のPC 内のWindows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL を使って、
Linux側に、プロジェクトを作っている
Windows側からのブラウザアクセスは、
VSCodeの拡張機能・open in browser ではローカルファイルアクセスとなるので制限されるが、
VSCodeの拡張機能・Live Server では、サーバーを立ててのアクセスとなるので制限されない
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた
yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
同様のツールに、asdf もある
2020/07/08(水) 14:12:08.29ID:/xPQ8brp
>>225
WindowsストアからWindowsターミナルをインストールしてWSL使うといいよ
WindowsストアからWindowsターミナルをインストールしてWSL使うといいよ
2020/07/09(木) 04:10:02.79ID:BKjg1Ggo
2020/07/09(木) 07:04:16.77ID:sqQbyxkS
>>249
普通にできると思うが?
普通にできると思うが?
2020/07/09(木) 09:08:55.63ID:IBvWLz/0
>>249
簡単に出来るじゃん
簡単に出来るじゃん
252login:Penguin
2020/07/09(木) 11:51:46.30ID:VUYm/kqB 簡単ではないでしょ。
バッチファイルをシェルスクリプトに置き換えるプログラミング技術が必要になる。
バッチとシェルでは引数展開の仕様やシングルクォート・ダブルクォートの解釈も違う。
バッチファイルをシェルスクリプトに置き換えるプログラミング技術が必要になる。
バッチとシェルでは引数展開の仕様やシングルクォート・ダブルクォートの解釈も違う。
253login:Penguin
2020/07/09(木) 11:57:09.19ID:VUYm/kqB bashとzshでさえ引数展開で違うところがあって困ることがある。
シェルスクリプトで頑張るをあきらめてPython使うのが無難だとは思う。
PerlもGit for Windowsに標準で付属されているので悪くない選択肢だけど、
プログラミング言語初心者に保守してもらうのを想定するならPythonかねぇ。
シェルスクリプトで頑張るをあきらめてPython使うのが無難だとは思う。
PerlもGit for Windowsに標準で付属されているので悪くない選択肢だけど、
プログラミング言語初心者に保守してもらうのを想定するならPythonかねぇ。
2020/07/09(木) 12:17:15.21ID:57QfF9jh
シェルスクリプトはshで動作するコマンドのみで書くべき、というのは大前提だが
Linuxが蔓延して、shの実体なんてどうせbashなんだからスクリプトなんてもうbash基準でいいじゃん…てなってしまったのが現実ではある
…が、zsh依存とか自前でゴチャゴチャ書くだけなら勝手にすればいいが、外に出したら叩かれるわ。悩む要素ないだろ
Linuxが蔓延して、shの実体なんてどうせbashなんだからスクリプトなんてもうbash基準でいいじゃん…てなってしまったのが現実ではある
…が、zsh依存とか自前でゴチャゴチャ書くだけなら勝手にすればいいが、外に出したら叩かれるわ。悩む要素ないだろ
2020/07/09(木) 12:31:16.90ID:sqQbyxkS
256login:Penguin
2020/07/09(木) 12:49:35.14ID:M1UcQIHC 釣り大会でもやってんのか
2020/07/09(木) 12:51:18.49ID:HI45RHdB
先生、獲物が絶滅危惧種のようです
2020/07/09(木) 13:04:15.97ID:Za/n0UAl
ここでいうshは、Bourne Shellのことなんだろ。
bashはオープンソースな上位互換シェル
bashはオープンソースな上位互換シェル
2020/07/09(木) 13:11:53.18ID:VUYm/kqB
釣りなら fish でしょ。
2020/07/09(木) 13:14:35.13ID:0y13rq6p
>>259
うまいねえ〜
うまいねえ〜
2020/07/09(木) 13:21:36.52ID:Za/n0UAl
fish とは上手いけど、本当は dash だろ。
2020/07/09(木) 13:22:21.12ID:y78RNX7h
長いことzsh使ってきたけどfishの素晴らしさを知って完全に乗り換えたわ。
bashはスクリプト用にしか使わない。
bashはスクリプト用にしか使わない。
2020/07/09(木) 13:48:52.67ID:6K8YgOI6
dashを知らない人がいるのかw
今どき/bin/shがbashって頭わいとんのかw
今どき/bin/shがbashって頭わいとんのかw
2020/07/09(木) 13:49:36.59ID:6K8YgOI6
265login:Penguin
2020/07/09(木) 14:18:05.47ID:FBsc4kM4 dash dash dash
fish and bash
fish and bash
266login:Penguin
2020/07/09(木) 14:18:44.15ID:FBsc4kM4 そんときーおーれがー
Super Heroさ
Super Heroさ
2020/07/09(木) 14:19:19.60ID:6K8YgOI6
略してSH
H ero
H ero
268login:Penguin
2020/07/09(木) 15:02:10.10ID:FBsc4kM4 H x EROS
2020/07/09(木) 17:46:33.54ID:y78RNX7h
オープニングの最後に出てくるドクロみてえな奇怪な物体にいつもビビってたわ
2020/07/10(金) 00:21:32.27ID:HRVLTHUg
Linuxが蔓延して、shの実体はPOSIX準拠に近いdashになってしまったな
bashこれからどうなるの?
bashこれからどうなるの?
2020/07/10(金) 01:50:07.40ID:4LyImNtn
2020/07/10(金) 03:23:43.67ID:NmUqS/NF
>>269
俺もミイラの頭蓋骨だと思ってたw
俺もミイラの頭蓋骨だと思ってたw
2020/07/10(金) 07:01:21.17ID:2zlh8yTt
シェルスクリプトの代わりは、可読性が高い、Ruby
2020/07/10(金) 08:54:29.50ID:3qY5cuD2
>>271
難しいかどうかの話はしてないよ
シェルスクリプトには「得意なこと」があって
その「得意なこと」は他の言語よりもシンプルに書ける
という事実があるってことだよ
シェルスクリプトは低機能な言語じゃなくて
特定の用途に特化した言語だってこと
その特定の用途を他の言語でやると面倒になる
だからシェルスクリプトの代わりになる言語なんて無いよ
難しいかどうかの話はしてないよ
シェルスクリプトには「得意なこと」があって
その「得意なこと」は他の言語よりもシンプルに書ける
という事実があるってことだよ
シェルスクリプトは低機能な言語じゃなくて
特定の用途に特化した言語だってこと
その特定の用途を他の言語でやると面倒になる
だからシェルスクリプトの代わりになる言語なんて無いよ
2020/07/10(金) 15:33:12.81ID:IfTnLADh
腰を据えてやりたいときは、今はほとんどpythonだけど、
ちょっとしたことをしたいときに、いちいちモジュールのインポートをしなければならないのは面倒くさい
普段使ってるコマンドをそのまま呼び出せるのは、シェルで解釈する系のスクリプト(バッチファイル含む)のいいところ
ワンライナーの簡単なperlは、呼び出されるコマンドの一つになってる
まぁ、おそらくこのスレの住人はだいたい同じように考えてるとは思うけど
ちょっとしたことをしたいときに、いちいちモジュールのインポートをしなければならないのは面倒くさい
普段使ってるコマンドをそのまま呼び出せるのは、シェルで解釈する系のスクリプト(バッチファイル含む)のいいところ
ワンライナーの簡単なperlは、呼び出されるコマンドの一つになってる
まぁ、おそらくこのスレの住人はだいたい同じように考えてるとは思うけど
276login:Penguin
2020/07/10(金) 15:52:46.98ID:juHBeHXl2020/07/10(金) 16:26:39.41ID:+mRN7Lhh
バイナリー扱うんじゃなければ、awkで十分
2020/07/10(金) 16:33:46.57ID:TH1a5vMX
シェルスクリプトでしのごうとする癖を改めて、最初からPython,Perl,Rubyで書く習慣をつけたほうがいい。
2020/07/10(金) 17:46:23.11ID:MFJxS89C
>>278
何で?
何で?
280login:Penguin
2020/07/10(金) 17:55:31.86ID:TH1a5vMX2020/07/10(金) 18:05:32.05ID:+mRN7Lhh
WSH
2020/07/10(金) 18:29:09.52ID:/zgyc019
そんなことするなら、GoとかRustの方がいいんじゃね?
2020/07/10(金) 18:47:19.69ID:3qY5cuD2
2020/07/10(金) 19:15:17.17ID:nsbhQHFP
2020/07/10(金) 19:32:29.58ID:MFJxS89C
シェルスクリプトは機能追加しにくいってのは意味不明だけど、何を使って実装するかは、対象によって変えるのが普通で、シェルで作った物をコンパイル言語で書き換えることになったりしないよ
2020/07/10(金) 22:38:51.18ID:Vn3GUL1J
>>280
先人の知恵を使う方が速いし楽だ。先ずはcoreutilsとsed,awkで。それでできなかったら、pythonでもjuliaでも好きなの使えばよろし
先人の知恵を使う方が速いし楽だ。先ずはcoreutilsとsed,awkで。それでできなかったら、pythonでもjuliaでも好きなの使えばよろし
2020/07/11(土) 01:11:43.13ID:CJsJjspQ
シェルスクリプトの複雑怪奇なワンライナーとかじゃなくて
2〜3個コマンドつなげただけの単純なワンライナーでも
それを他の言語にするとバグあるんじゃねーかこれ?レベルの
テストが必要なコードになるからね
シェルスクリプトで書くと後で他の言語に書き直したくなるっていうのは
そもそも最初にシェルスクリプトを選んだのが間違いってだけ
2〜3個コマンドつなげただけの単純なワンライナーでも
それを他の言語にするとバグあるんじゃねーかこれ?レベルの
テストが必要なコードになるからね
シェルスクリプトで書くと後で他の言語に書き直したくなるっていうのは
そもそも最初にシェルスクリプトを選んだのが間違いってだけ
2020/07/11(土) 17:27:01.11ID:nH0xaI8V
LLで書くまでもないと思ってシェルスクリプトで書いてもあとからやっぱりLLにしておけばよかったてのはよくある
2020/07/11(土) 17:29:06.03ID:ss8oSOoU
そういうのはそもそもシェルスクリプトで書くべきではなかっただけ
なぜ用途で使う言語を選ぶことができないのか?
なぜ用途で使う言語を選ぶことができないのか?
2020/07/11(土) 17:38:07.09ID:k15GPxxj
つ「馬鹿の一つ覚え」
2020/07/11(土) 17:38:47.21ID:k15GPxxj
つ「一知半解」
2020/07/11(土) 17:48:25.48ID:vh5QM+xj
結局どっちで書くべきだったのかは実際書いてみないとわからない時もある
一見コマンドの組み合わせで何とかなりそうに見えたからシェルスクリプトで組んでみたものの思いの外処理が複雑でawk,sedでは辛かったり
(以前そういう処理書いてたときは複雑な部分だけpythonで書いて
シェルスクリプト内でpythonをパイプで挟んだ)
一見コマンドの組み合わせで何とかなりそうに見えたからシェルスクリプトで組んでみたものの思いの外処理が複雑でawk,sedでは辛かったり
(以前そういう処理書いてたときは複雑な部分だけpythonで書いて
シェルスクリプト内でpythonをパイプで挟んだ)
2020/07/11(土) 18:32:50.26ID:ss8oSOoU
> の思いの外処理が複雑でawk,sedでは辛かったり
?
awkは行と列単位の処理
sedは行単位の置換
変にGNUの拡張使うのがいかんのやろ
できるからやるんじゃなくて、それぞれのコマンドに適した問題を
そのコマンドでやればいいだけだよ。適してるかなんてすぐわかるじゃん。
問題が適していないとわかった時点で、別の方法を使えばいい。
それにさ、awkやsedでつらいっていうけど、それシェルスクリプトじゃないから。
awkがつらい、sedがつらい。ならあんたが言うように
awkやsedの部分だけをpythonに置き換えればいいだけ
それはawkやsedを置き換えてるのであって、シェルスクリプトを置き換えてはいない
?
awkは行と列単位の処理
sedは行単位の置換
変にGNUの拡張使うのがいかんのやろ
できるからやるんじゃなくて、それぞれのコマンドに適した問題を
そのコマンドでやればいいだけだよ。適してるかなんてすぐわかるじゃん。
問題が適していないとわかった時点で、別の方法を使えばいい。
それにさ、awkやsedでつらいっていうけど、それシェルスクリプトじゃないから。
awkがつらい、sedがつらい。ならあんたが言うように
awkやsedの部分だけをpythonに置き換えればいいだけ
それはawkやsedを置き換えてるのであって、シェルスクリプトを置き換えてはいない
2020/07/11(土) 18:38:28.69ID:k15GPxxj
<<を使えば良いのに
2020/07/11(土) 20:30:10.89ID:6BqHmbZe
sedが辛ければ、普通はperlを使うだろ
2020/07/11(土) 21:55:52.15ID:R/CfnAdC
素直に最初からperlで組んどけばよかったんじゃ
2020/07/11(土) 22:31:18.49ID:ss8oSOoU
つまりsedじゃなくてperlを使うという話で
シェルスクリプトとは関係ないわけだ
シェルスクリプトとは関係ないわけだ
2020/07/11(土) 22:37:00.28ID:R/CfnAdC
perlがこの先生きのこるうえでシェルスクリプトっぽく見えるperlの言語仕様が長所になるかもね。
2020/07/11(土) 22:42:26.16ID:ss8oSOoU
Perlで foo | bar | baz と同じことをするものを作る場合どうするの?
2020/07/11(土) 22:48:27.46ID:Q8Accifd
echo HOGE | perl -pe "s/O/A/"
とやればOをAに置換できる
とやればOをAに置換できる
2020/07/11(土) 23:10:23.61ID:R/CfnAdC
>>299
単に実行するだけなら
system("foo | bar | baz");
ただしsystem()は標準出力される文字列を再利用やリダイレクトできない。
出力結果を変数$hogeに格納するなら
my $hoge = `foo | bar | baz`;
出力を一行ずつ処理したいなどの要求があるなら、素直にパイプ処理のコードを書く必要がある。
単に実行するだけなら
system("foo | bar | baz");
ただしsystem()は標準出力される文字列を再利用やリダイレクトできない。
出力結果を変数$hogeに格納するなら
my $hoge = `foo | bar | baz`;
出力を一行ずつ処理したいなどの要求があるなら、素直にパイプ処理のコードを書く必要がある。
302login:Penguin
2020/07/11(土) 23:46:31.52ID:xOIYo2js2020/07/12(日) 00:03:51.97ID:8IVU8OYq
この板に来る奴の多くはシェルスクリプトしか(それも少しだけしか)できなくて他に選択の余地ない奴が多いだろ
2020/07/12(日) 00:05:51.50ID:7U4pPq4C
>>302
それはsedやawkじゃあかんのか?
それはsedやawkじゃあかんのか?
2020/07/12(日) 00:05:55.44ID:X6+2ZbgQ
>>303
そういうやつがわざわざここに来るとは思えんけどなぁ...
そういうやつがわざわざここに来るとは思えんけどなぁ...
2020/07/12(日) 00:17:51.66ID:s6Bmu8gK
2020/07/12(日) 00:29:09.06ID:8IVU8OYq
2020/07/12(日) 00:34:27.31ID:s6Bmu8gK
簡単だからこそ、用途に応じて使い分けるということは理解できないかな?
309login:Penguin
2020/07/12(日) 00:34:34.83ID:5U5bHZ+6 fzf などのインクリメンタルサーチで選択した文字列をそのまま端末の出力バッファに送り込みたい場合、bash環境ではPerlが使われる。
以下に端末の出力バッファに文字列を送る例を示す。0x5412は、bash環境におけるTIOCSTIの実値。
$ perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ "echo hello\necho world\necho foobar" };'
以下に端末の出力バッファに文字列を送る例を示す。0x5412は、bash環境におけるTIOCSTIの実値。
$ perl -e 'ioctl STDOUT, 0x5412, $_ for split //, do{ "echo hello\necho world\necho foobar" };'
310309
2020/07/12(日) 00:41:10.00ID:5U5bHZ+6 訂正。
0x5412は、Linux環境におけるTIOCSTIの実値。
0x5412は、Linux環境におけるTIOCSTIの実値。
311login:Penguin
2020/07/12(日) 02:29:56.32ID:DN64b1Du 決まった処理させるのにコマンド羅列で済むから最初はbatにするんだけど
扱う対象が増えたりで少し便利にしたいと思ったら途端に面倒になるので
Perlに組み込むなんてことは普通によくある
扱う対象が増えたりで少し便利にしたいと思ったら途端に面倒になるので
Perlに組み込むなんてことは普通によくある
312login:Penguin
2020/07/12(日) 12:08:18.23ID:b0mOmfy0 Ubuntuの初心者ですが
皆さんはデスクトップは何を使用しているのでしょうか
良かったらお勧めのデスクトップを教えてください
皆さんはデスクトップは何を使用しているのでしょうか
良かったらお勧めのデスクトップを教えてください
2020/07/12(日) 12:12:35.50ID:lPaBZYh6
2020/07/12(日) 12:14:03.59ID:lPaBZYh6
書き込んでから気づいたがWSLスレだった。すまん
2020/07/12(日) 12:14:32.11ID:I0Hzl5QJ
可読性の高い、Ruby が確実。
漏れは、パッケージの更新も、Ruby スクリプトでやってる
#!/usr/bin/env ruby
# sudo のパスワードを自動入力する
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
漏れは、パッケージの更新も、Ruby スクリプトでやってる
#!/usr/bin/env ruby
# sudo のパスワードを自動入力する
puts `echo パスワード | sudo -S apt-get update`
puts `sudo apt-get upgrade -yV`
316login:Penguin
2020/07/12(日) 13:13:20.26ID:5U5bHZ+6 パスワードをファイルにベタ書きしたらだめでしょ。
visudo でパスワードなし実行するユーザとコマンドを設定したほうがい。
visudo でパスワードなし実行するユーザとコマンドを設定したほうがい。
2020/07/12(日) 13:45:35.95ID:IgrSJcin
パッケージの更新とかならMakefileがお手軽じゃない?
2020/07/12(日) 14:16:56.67ID:7I/a/XJM
>>304
AWKには"文字"の置換はない("文字列"の置換はある)。Sedは内部に tr コマンドがない代わりに y コマ
ンドで"文字"の置換を行え、原理的に速いが、trコマンドやPerlの tr 演算子のように、文字の範囲指定
([0-9]で数字を構成する文字全て、等)ができないので、使い勝手で劣る。
AWKには"文字"の置換はない("文字列"の置換はある)。Sedは内部に tr コマンドがない代わりに y コマ
ンドで"文字"の置換を行え、原理的に速いが、trコマンドやPerlの tr 演算子のように、文字の範囲指定
([0-9]で数字を構成する文字全て、等)ができないので、使い勝手で劣る。
2020/07/12(日) 15:27:21.95ID:gM0oNR+O
2020/07/13(月) 03:50:31.62ID:z3yut/lS
>>301
それperlからシェル呼んでるだけだろ
それperlからシェル呼んでるだけだろ
2020/07/13(月) 05:28:24.03ID:Mfeh6D4T
コマンドを関数と同じように使える言語があってもいいと思うんですけどね
それがシェルなんだろうけど、言語なんでインタラクティブシェル機能ははなくていいw
なぜかみんなPOSIXシェルの代替を目指す。
そんなん無理だろうに
それがシェルなんだろうけど、言語なんでインタラクティブシェル機能ははなくていいw
なぜかみんなPOSIXシェルの代替を目指す。
そんなん無理だろうに
2020/07/13(月) 07:11:54.65ID:6r2RwdRo
シェルを介さずに外部コマンド呼ぶ方法なんてperlにもpythonにも普通にあるだろ
2020/07/13(月) 07:28:25.76ID:Mfeh6D4T
シェルを介さずに外部コマンド呼ぶことはできるが
パイプのように出力側と入力側でブロックせずに並列で処理を実行できる機能がない
パイプのように出力側と入力側でブロックせずに並列で処理を実行できる機能がない
2020/07/13(月) 07:31:30.16ID:6r2RwdRo
2020/07/13(月) 07:50:17.85ID:Mfeh6D4T
2020/07/13(月) 07:53:44.80ID:6r2RwdRo
>>325
子プロセス作ればいいだけじゃん
子プロセス作ればいいだけじゃん
2020/07/13(月) 10:22:54.04ID:Mfeh6D4T
2020/07/13(月) 11:32:58.52ID:6r2RwdRo
素直に分からないから教えてくださいってお願いできないものかね
プロセス間通信でググってよく調べとけよ
open my $pipe, '|-', 'grep -E "3|4|5"';
for (0..100) {
sleep 1;
print $pipe "$_\n";
}
プロセス間通信でググってよく調べとけよ
open my $pipe, '|-', 'grep -E "3|4|5"';
for (0..100) {
sleep 1;
print $pipe "$_\n";
}
2020/07/13(月) 11:37:46.70ID:c0s7GQYU
>>328
ドザが喜びそうな言い方だな
ドザが喜びそうな言い方だな
2020/07/13(月) 11:52:55.30ID:O359orXv
>>328
バファリングされてんじゃね?
バファリングされてんじゃね?
2020/07/13(月) 11:59:06.94ID:6r2RwdRo
ああ、そうだね
open my $pipe, '|-', 'grep -E "3|4|5"';
select $pipe;
$| = 1;
for (0..100) {
sleep 1;
print $pipe "$_\n";
}
open my $pipe, '|-', 'grep -E "3|4|5"';
select $pipe;
$| = 1;
for (0..100) {
sleep 1;
print $pipe "$_\n";
}
2020/07/13(月) 12:13:56.54ID:SYLILHd2
Perlは並列処理とパイプの相性悪い。別スレッドのパイプハンドルをブロックしてしまう。
CPANライブラリの Parallel::ForkManager を使うとかひと工夫が必要。
なんにせよ「Perlがこの先生きのこるには」スレになりつつあるので話題を変えたほうがいい。
CPANライブラリの Parallel::ForkManager を使うとかひと工夫が必要。
なんにせよ「Perlがこの先生きのこるには」スレになりつつあるので話題を変えたほうがいい。
2020/07/13(月) 12:26:12.36ID:O359orXv
2020/07/13(月) 12:53:17.72ID:Mfeh6D4T
335login:Penguin
2020/07/13(月) 13:01:39.44ID:SYLILHd2 >>334
シェルスクリプトはバグをOS固有の仕様として甘受するほかないことが多いので、プログラマにできる改善の余地が少ない。
シェルスクリプトはバグをOS固有の仕様として甘受するほかないことが多いので、プログラマにできる改善の余地が少ない。
336login:Penguin
2020/07/13(月) 13:10:22.35ID:SYLILHd2 sleep コマンドが満足に動かないWSL版 Ubuntu 20.04 LTS に依存したシェルスクリプトを書くのは大変だろう。
結局、PerlなりPytonなりの言語で書くことになる。
結局、PerlなりPytonなりの言語で書くことになる。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【文春】《本人直撃》「日本は核保有すべき」発言をしたのは“核軍縮担当”の首相補佐官だった! 高市首相が更迭しない理由は… ★2 [少考さん★]
- 親子4人死亡の母親名義マンションから27歳男性遺体 男性の携帯が母親の車に…2人は交際か “寝込み”襲われた可能性 [どどん★]
- レアアース、1キログラム965ドル(約15万円)から3750ドル(約58万円)に 価格高騰 [お断り★]
- ラサール石井 “「外国人の犯罪が多い」って、担当大臣まで作って、そんな事実はどこにあるのか…” [少考さん★]
- バリ島研修旅行で万引きの大谷高生徒 被害店舗に弁済し謝罪 [どどん★]
- 【秋田市】新スタ整備「地域の実情受け止めて」「自治体の支援・負担がなければ成り立たない」 沼谷市長、Jリーグへの思い語る [鉄チーズ烏★]
- 天皇陛下の高市早苗を見る顔wwwwwwwwwwwwwwwww [271912485]
- 雑談~
- 🏡あわてんぼうのろぼたくろーす🎄🤖🎄
- 仕事の面接受けようと思ったら見事に仕事の日を指定されてんだけど
- 生きる意味がわからない
- 西東京心中、マンション遺体は母の交際相手。高市ごめん [792147417]
