【Bash】Windows Subsystem for Linux【WSL】8

■ このスレッドは過去ログ倉庫に格納されています
2020/05/29(金) 17:58:21.78ID:N31NEDSz
ついに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/
2020/07/04(土) 12:37:55.60ID:T+FLHI+X
なるほど、xrdpでつなげばLinux側のデスクトップがそのまま使えるのか
2020/07/04(土) 13:38:05.99ID:ueejGPF4
別にguiサポートするのは構わんけどまずWSL2をちゃんとしてくれ
2020/07/04(土) 15:00:08.14ID:PA/pPUOM
>>203
MSぐらいになると、両方同時進行が可能になる
さきに○○をするんじゃなくて○○も同時に進行する。
2020/07/04(土) 20:55:05.16ID:IvwpFKJj
>>203
ちゃんとって?
2020/07/04(土) 21:58:11.96ID:S1FiPV3+
車輪の再発明は時に清々しい。以下、curlコマンドを使ったお天気確認。
curl ja.wttr.in
2020/07/05(日) 00:10:18.17ID:LobEAzla
WSL2のホームディレクトリってどこですか?
importでDドライブにインストールしたはずが起動時の空き容量の表記がおかしいのですがホームはCドライブに保存されるんですかね
2020/07/05(日) 02:44:39.99ID:Ag7q3ncc
仮想マシンなんだからホストの空き容量なんか見ねえよ
2020/07/05(日) 02:51:49.29ID:MKmW4BVG
"WSL2のホーム"ってのがそもそもわからん
WSL2でインストールしたディストリのrootの実体はどこですか、ならまだわからんでもないが
そもそもvhdxかなんかで仮想化されてんじゃねっていう
2020/07/05(日) 03:09:20.13ID:LobEAzla
分かりづらくてすみません
聞きたいことは
Linux上で書き込まれたデータは全てDドライブにあるVHDに書き込まれるからCドライブに書き込みすることはないのかってことです
2020/07/05(日) 03:19:11.71ID:iD3GsNB8
デフォだとswap用のvhdxをユーザーのホームディレクトリ配下に作るね
.wslconfigで変更可能
2020/07/05(日) 15:39:48.86ID:LobEAzla
なるほど
ありがとうございます変更しました
213login:Penguin
垢版 |
2020/07/05(日) 18:51:35.65ID:Gd5Riea6
以前書き込みした者>>128です
今日色々試してやっと
Xfcデスクトップの導入及び日本語表示まで出来るようになりました
只Windows10上でUbuntuを開いたターミナルではlynxに設定のemacsは日本語での書き込みは出来ますが
Xfcのディスクトップでのemacsは何故か出来ません。勿論lynxを稼働してemacsを開いても
日本語表示はするが日本語での書き込みが出来ません
又firefoxの日本語化表示も出来ましたが日本語での書き込みは出来ません
又firefoxでyutubeの動画を見ても音は出ませんでした

だからもうCUIでの使用でいいやとあきらめていましたが
偶然ですがXfcディスクトップ画面が開いているときに
windowsキーを押しながら下矢印を押すとWindows10のタスクバーがした画面に表示されました
きっと皆さんは今頃言うかでしょうが
これでXfcのディスクトップ画面上でWindows10の使用が出来るし
Ubuntuの使用も出来るようになり何の切り替えもなくシームレスに使用できるようになりました
Ubuntud上での音が出ない事や日本語が書き込みできないことも必要でなくなりました
以上報告でした
2020/07/05(日) 20:12:03.34ID:sMDlceKk
「ディスクトップ」が気になるけど良かったね
2020/07/05(日) 21:08:32.27ID:JZBgzgsh
ディスケットに変更しろ
2020/07/05(日) 21:23:51.60ID:cTBT4P4e
Dellのマニュアルにディスケットって書いてあったな。
なんのこっちゃとオモタわ。
217login:Penguin
垢版 |
2020/07/06(月) 04:35:23.12ID:IztfREjA
WSL で、GUI が使えるの?

リモートデスクトップが必要なのでは?
2020/07/06(月) 06:35:34.84ID:X1jLmIOv
xrdp動かせばXサーバいらず
219login:Penguin
垢版 |
2020/07/06(月) 11:05:50.56ID:j4eG9HhS
説明が下手なので下記の画像を見れば分かると思います
よく5chで使用しているアップローダーは登録が嫌なので
下記にアップしました
尚Windowsのディスクトップ画面を表示したい場合はタスクトレー上で右クリックして
ディスクトップを表示をクリックすればいいです
又Ubuntuの画面(デフォのネズミのディスクトップ画面から他の画面に変更しています)
に戻りたければタスクトレーにあるXlaunchアイコンをクリックすればOKです


https://jisaku.155cm.com/src/1594000778_9a71c9f0263afcbc67afb38ee1471c92ce677fcf.jpg
https://jisaku.155cm.com/src/1594000778_b39201cdb89a6f7ef465c1f4f052485aed5db359.jpg
2020/07/06(月) 12:51:25.65ID:zz8Rmtmu
ディ
2020/07/06(月) 17:32:40.69ID:fkFgrscX
>>218
全画面だけでいいなら、それで決まりだね。
222login:Penguin
垢版 |
2020/07/06(月) 17:51:46.59ID:xnDwd6P9
Windows 10 ProのVPSを借りていて、Windows内でネストしてVT-xは使えないんだけどさ
こういう場合ってやっぱWSL2にすると使えなくなるのかな?
2020/07/06(月) 19:03:53.54ID:eXLZ9Y9J
しらんけど、HyperVはネストに対応しているので
Windows 10の仮想マシンでWSL2を使うことができてる

Insider Previewを使ってる人の多くが
仮想マシンに入れてWSL2の検証をしたいただろう
2020/07/06(月) 21:21:33.98ID:UdrWxuu2
ちゃんとした画面えみゅらないとOpenGLとか動かないだろ
225login:Penguin
垢版 |
2020/07/06(月) 22:27:17.59ID:oiLZmKnU
wsl で bash を使おうとしているのですが文字に色がついているため非常に読みにくいです
(最近老眼のためか一部の色が極端に見づらくなりました)
色づけをやめてすべて白一色で表示するようにするにはどうしたらいいでしょうか?
2020/07/07(火) 01:37:42.41ID:vkXM0LXf
画面のコントラストを下げる
2020/07/07(火) 07:55:35.28ID:3EK+fba6
まあWSLではなく、ターミナル(エミュレータ)の設定の問題だよね。
ここで聞かれても…
2020/07/07(火) 08:51:53.82ID:ScthUm4d
プロンプトの色変更はターミナル側の設定だけど
lsでディレクトリが青文字になってしまう問題はカラーテーマ変えてもしんどいからwsl側で設定したほうがいい
https://www.kwbtblog.com/entry/2019/04/27/023411
2020/07/07(火) 11:50:26.46ID:3EK+fba6
表示に関わらず一律に単色表示にしたい、という要望なのだから
プロンプトや各コマンドの表示設定ではなくターミナルエミュレータの設定だろう
WSLは関係ないし、ここで聴くことでもない。このようにピンボケした第三者がノコノコ現れるのも迷惑だ。
230login:Penguin
垢版 |
2020/07/07(火) 14:24:03.11ID:0Fc1oIgP
漏れは、Ubuntu 18.04 で、
ColorTool.exe で、Windows の色を変えているけど、
WSL が暗いので明るくしたら、PowerShell で明るすぎて見えない

例えば、コマンド入力時に、色を付けない事はできる
la -p --color=never

~/.bashrc の83行目移行で、色を付けている
alias ls='ls --color=auto'
alias grep='grep --color=auto'

test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"

とあるから、~/.dircolors が読み取り可能なら、
そのファイルをdircolors コマンドで処理すると読めるから、
~/.dircolors で設定できるのかも
231230
垢版 |
2020/07/07(火) 14:39:29.53ID:0Fc1oIgP
>>228
のサイトでは、ColorToolのバイナリ配布がなくなったと書いてあるけど、
下に、ColorTool.zip がある
https://github.com/microsoft/terminal/releases/tag/1904.29002

WSLでターミナルの文字色を変える(2019/8/10版)
https://qiita.com/ligun/items/0a63660e1d8b486232d9

漏れが試した中では、これがマシだけど、まだ見にくい
ColorTool.exe -d deuteranopia.itermcolors
2020/07/07(火) 15:35:33.86ID:MDiVDN7d
コマンド画面の色はautoexec.batで指定するんだよ
config.sysでちみとにるとんと読ませるのも忘れずにな
233230
垢版 |
2020/07/07(火) 15:51:16.61ID:0Fc1oIgP
色を付けない、la, ll のalias を、
~/.bashrc か、~/.bash_aliases に定義するのが簡単

alias lan='la -p --color=never'
alias lln='ll -p --color=never'

ただ、~/.bashrc では、grep などにも色を付けているけど

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
234230
垢版 |
2020/07/07(火) 15:58:51.40ID:0Fc1oIgP
漏れは、Ubuntu 18.04 で、
ColorTool.exe で、Windows の色を変えているけど、

WSL が暗いので明るくしたら、
今度はVSCode で、PowerShell を起動したら、明るすぎて見えない

これらを両立させるのが難しいので、
色を付けない、--color=never の、la, ll のalias を定義している
2020/07/07(火) 17:26:18.62ID:O5VE5X3t
gimpインストールしてgimp開いたと思ったとたんXサーバーが落ちた
何かとか弱いんだな
2020/07/07(火) 18:26:15.72ID:YYImeKjE
WSLって結局何に使ってる?
pythonもgitもWin側に入れてるから使いみちがないわ
2020/07/07(火) 20:36:13.77ID:re05twJJ
>>225
\ls
2020/07/07(火) 20:40:20.05ID:JVYy2LEm
ctags
2020/07/07(火) 20:41:16.60ID:re05twJJ
>>236
emacs
2020/07/07(火) 22:43:59.55ID:2jBYURUv
>>236
究極的にはWindowsでLinuxと同じ環境ができてしまったら
WSLが必要ないのは当たり前

問題は同じ環境を作る手間
例えばPythonを複数のバージョンインストールして
切り替えたいと思ったらどうするかね?

そういう仕組みを作れば出来る。
その仕組みを作るまでが大変。
WSLは既存のLinuxの仕組みをそのまま使える
2020/07/07(火) 22:45:11.48ID:vKQ2n6hj
てすと
2020/07/07(火) 22:47:02.63ID:8+syWFqb
>>236
僕もemacs

あと、clojureでの開発・キーボードのファームウェアのビルド
pythonの開発も何かとlinuxの方がやりやすかったり
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
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
2020/07/08(水) 10:48:36.58ID:caZYZiep
おれはlynxをファイルエクスプローラとして使いファイルを書いたり変更したりしてる
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 もある
2020/07/08(水) 14:12:08.29ID:/xPQ8brp
>>225
WindowsストアからWindowsターミナルをインストールしてWSL使うといいよ
2020/07/09(木) 04:10:02.79ID:BKjg1Ggo
>>236だけど遅くなったサンクス
個人的には.batを完全にシェルスクリプトで代替できるようになったら楽なんだが無理なのかな
バッチファイルは書き辛い
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かねぇ。
2020/07/09(木) 12:17:15.21ID:57QfF9jh
シェルスクリプトはshで動作するコマンドのみで書くべき、というのは大前提だが
Linuxが蔓延して、shの実体なんてどうせbashなんだからスクリプトなんてもうbash基準でいいじゃん…てなってしまったのが現実ではある
…が、zsh依存とか自前でゴチャゴチャ書くだけなら勝手にすればいいが、外に出したら叩かれるわ。悩む要素ないだろ
2020/07/09(木) 12:31:16.90ID:sqQbyxkS
>>252
シェルスクリプトは引数展開の仕様がバッチファイルよりもわかりやすい

バッチファイルで空白が入るパスを扱おうと思ったら
とんでもないコードが必要になる

>>253
Pythonに限らないがシェルスクリプト以外だと
コマンドの入力を受け取るのが大変
シェルスクリプトだとプロセスを複製して
パイプの入力と出力を並列で動かすことが出来るが
Pythonなどでは難しい

>>254
> Linuxが蔓延して、shの実体なんてどうせbashなんだから
UbuntuとDebianでLinuxのシェアの半分以上を締めてる
つまりshの実態はbashではない
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はオープンソースな上位互換シェル
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はスクリプト用にしか使わない。
2020/07/09(木) 13:48:52.67ID:6K8YgOI6
dashを知らない人がいるのかw
今どき/bin/shがbashって頭わいとんのかw
2020/07/09(木) 13:49:36.59ID:6K8YgOI6
>>258
Bourne Shellなんてもう生き残ってないよ
Solaris8?ぐらいが最後やろ
265login:Penguin
垢版 |
2020/07/09(木) 14:18:05.47ID:FBsc4kM4
dash dash dash
fish and bash
266login:Penguin
垢版 |
2020/07/09(木) 14:18:44.15ID:FBsc4kM4
そんときーおーれがー
Super Heroさ
2020/07/09(木) 14:19:19.60ID:6K8YgOI6
略してSH
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これからどうなるの?
2020/07/10(金) 01:50:07.40ID:4LyImNtn
>>255
subprocess使え
シェルスクリプトに比べれば面倒だけど難しいと言う程ではない
2020/07/10(金) 03:23:43.67ID:NmUqS/NF
>>269
俺もミイラの頭蓋骨だと思ってた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は、呼び出されるコマンドの一つになってる

まぁ、おそらくこのスレの住人はだいたい同じように考えてるとは思うけど
276login:Penguin
垢版 |
2020/07/10(金) 15:52:46.98ID:juHBeHXl
>>275
同意。
適当にシェルスクリプトで作って、シェルスクリプトだと面倒な所はperlとかで。パフォーマンスとか考える必要がない場合なら十分だと思ってる。
2020/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:TH1a5vMX
>>279
シェルスクリプトよりも機能追加しやすい。
シェルスクリプトよりもコンパイル言語(C、Java、C#等)に移植しやすい。
2020/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
>>278
質問に答えよ

シェルスクリプトからPython,Perl,Rubyへ移植するのは簡単か否か


簡単ならシェルスクリプトで書けばいいし
難しいならなんでそんな難しいことするんだよって話になる
2020/07/10(金) 19:15:17.17ID:nsbhQHFP
>>281
JScriptで書いたものがNode.jsでそのまま(ないし少しの修正)動かせるなら、
WSHを使うのも吝かではない
2020/07/10(金) 19:32:29.58ID:MFJxS89C
シェルスクリプトは機能追加しにくいってのは意味不明だけど、何を使って実装するかは、対象によって変えるのが普通で、シェルで作った物をコンパイル言語で書き換えることになったりしないよ
2020/07/10(金) 22:38:51.18ID:Vn3GUL1J
>>280
先人の知恵を使う方が速いし楽だ。先ずはcoreutilsとsed,awkで。それでできなかったら、pythonでもjuliaでも好きなの使えばよろし
2020/07/11(土) 01:11:43.13ID:CJsJjspQ
シェルスクリプトの複雑怪奇なワンライナーとかじゃなくて
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をパイプで挟んだ)
2020/07/11(土) 18:32:50.26ID:ss8oSOoU
> の思いの外処理が複雑で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に置換できる
2020/07/11(土) 23:10:23.61ID:R/CfnAdC
>>299

単に実行するだけなら
system("foo | bar | baz");
ただしsystem()は標準出力される文字列を再利用やリダイレクトできない。

出力結果を変数$hogeに格納するなら
my $hoge = `foo | bar | baz`;


出力を一行ずつ処理したいなどの要求があるなら、素直にパイプ処理のコードを書く必要がある。
302login:Penguin
垢版 |
2020/07/11(土) 23:46:31.52ID:xOIYo2js
>>300
"文字列"ではなく"文字"の一対一の置換、及び削除は tr コマンドを使うか、Perlを使いたいのなら
s 演算子ではなく tr 演算子を使えば、(原理的に)速い。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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