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


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

シェルスクリプト総合 その29



1 名前:デフォルトの名無しさん mailto:sage [2018/09/22(土) 11:53:21.38 ID:BBiLRgnj0.net]
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。

スレ立て時は以下の文を先頭行に加えて下さい。
後のつけ忘れ防止の為に複数行重ねて追加推奨
!extend:on:vvvvv:1000:512

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ
シェルスクリプト総合 その28
mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

393 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 17:53:36.33 ID:Kkuf6Nxk0.net]
一回のループでファイルや変数を使わずに、偶数行と奇数行にまとめられないかなぁ?

例えば、入力ファイルが以下のような場合
1
2
3
4
5

出力は、以下のようにしたい
2 # ここから偶数行
4
1 # ここから奇数行
3
5

ファイルディスクリプタをうまく使えばできるんじゃないか?
と思ってたりするけどうまくいかない

394 名前:デフォルトの名無しさん [2018/11/01(木) 18:26:55.97 ID:OxvwXsOaa.net]
変数も使っちゃダメなのか。うーん。

395 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 18:37:54.39 ID:eWvFwheDM.net]
sedじゃあかんのけ?

396 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 18:50:36.53 ID:Kkuf6Nxk0.net]
>>395
sedでできるならsedでもいいけど。

やっぱり無理だよなぁ
結局、奇数行のデータを後からだすためには
どこかにためておく必要があるわけで
メモリかディスクはどうしても使用してしまう

二回のループにするなら、メモリもディスクも消費しないけど
今度は入力データをためておく必要がある

397 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 19:37:55.15 ID:upF+pHX50.net]
>>393
もし変数を使っていいなら,どうやって書くの?

398 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 19:42:09.40 ID:Kkuf6Nxk0.net]
>>397
こんな感じでは?

while 全行ループ; do
 if 偶数行 then echo 偶数行
 奇数行変数 = 奇数行変数 + 奇数行 + 改行
done
echo 奇数行変数

399 名前:デフォルトの名無しさん [2018/11/01(木) 19:46:11.92 ID:OxvwXsOaa.net]
元データがファイルに入っていて2回読んで良くて尚且つ変数使って良いなら楽だよ、っていうかそれなら誰でも作れるかw

400 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 19:51:11.07 ID:Kkuf6Nxk0.net]
遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか

実際には偶数行、奇数行じゃなくて、データを種類ごとに前後に分けたくて
後ろに分けるデータは基本的に少ないってことがせめてもの救いか

401 名前:デフォルトの名無しさん [2018/11/01(木) 19:58:02.45 ID:zOBF+lvD0.net]
なんでバカって実行速度ばかり気にするんや?



402 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 19:59:10.65 ID:Kkuf6Nxk0.net]
何度も実行するものなので、遅いとストレスたまるから

403 名前:デフォルトの名無しさん [2018/11/01(木) 20:00:23.29 ID:zOBF+lvD0.net]
バカなのにストレスたまるの?バカやめたら?

404 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 20:03:44.33 ID:Kkuf6Nxk0.net]
その理屈だと、
・バカなのにストレス溜まるの?(不思議)
・バカじゃないならストレス溜まる(普通)
ってことになるから、

バカやめたら、それこそストレス溜まるのでは?

405 名前:デフォルトの名無しさん [2018/11/01(木) 20:18:26.34 ID:zOBF+lvD0.net]
バカの理屈わろたw
バカなんやから考えん方がええで

406 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 20:23:45.26 ID:Kkuf6Nxk0.net]
なにか言い返せよw

407 名前:デフォルトの名無しさん [2018/11/01(木) 20:37:24.98 ID:zOBF+lvD0.net]
バカに言いかえすとか無理やわ理屈がないからバカなんやでおまえ

408 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 20:38:28.76 ID:Kkuf6Nxk0.net]
そりゃね。>>404が正しいから何も言いえせないわなw

409 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 20:43:56.74 ID:RCcSs0UBM.net]
お前ら、哲学者か何かなん?

410 名前:デフォルトの名無しさん [2018/11/01(木) 20:50:42.34 ID:zOBF+lvD0.net]
バカとバカを嘲笑う者や

411 名前:デフォルトの名無しさん [2018/11/01(木) 20:51:14.40 ID:5U41yww90.net]
奇数行だけ抽出するスクリプトと
偶数行だけの二つ作って、
奇数行スクリプトの出力に偶数行のを追記させる

なんとなくそんなイメージ



412 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 21:54:51.76 ID:zo7FxUKXr.net]
速度言うならCなりJavaで書いてデーモン化して動かさんとな
シェルスクリプト特有のコマンド羅列のプロセス起動しまくりってのは
すごいコストがかかってる

413 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 21:57:34.95 ID:eWvFwheDM.net]
偶数行抽出
grep "Kkuf6Nxk0"
奇数行抽出
grep "zOBF+lvD0"

楽勝すぎるわ

414 名前:デフォルトの名無しさん [2018/11/01(木) 21:58:38.71 ID:zo7FxUKXr.net]
>>404
いや普通なら落としどころ決めるだろ
シェルスクリプトだからあきらめるとか
ちゃんとした言語で作るとか
バカだから漠然と心配ばかりしてストレスが溜まる
今も月が落ちてくる心配でもしてるんじゃないの

415 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 21:59:28.16 ID:JoiMeSvG0.net]
>>412
デーモンだって実行プロセスは立ち上げないとダメだろ

416 名前:デフォルトの名無しさん [2018/11/01(木) 21:59:49.59 ID:zOBF+lvD0.net]
>>413
シェルが固まったんやがウイルスちゃうやろな?直しかた教えろバカ

417 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 21:59:57.39 ID:zo7FxUKXr.net]
>>413
後出しで奇数偶数じゃないって言ってるよ

418 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:00:55.53 ID:45pCF+y00.net]
seq 5 | awk '{print ($1%2?"b":"a") $1}' | sort -V | cut -c2-

419 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:06:42.28 ID:Kkuf6Nxk0.net]
>>414
普通(?)の言語で作ったって、結局は変数に入れないとだめでしょ

ファイルを受け取ってその順番を変えて出すんだから

キミは本質をわかってない

420 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:08:20.21 ID:Kkuf6Nxk0.net]
>>412
シェルスクリプト(と一部のPOSIXコマンド)で作るっていうのは
必須条件なのでそれはできないのです。

421 名前:デフォルトの名無しさん [2018/11/01(木) 22:09:12.59 ID:zOBF+lvD0.net]
バカはいいかげん黙っとけ



422 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:12:35.86 ID:Kkuf6Nxk0.net]
>>413
結局はそれ、二回読み込んでるんだよね

>>418
それも考えたんだけど、結局はソートの
ためにメモリに読み込むから本質的には変わらないかなーと

あと>>393の例が良くなかったけど、入力ファイルは昇順とは限らなくて
偶数グループと奇数グループにわけるだけで、順番は変えたくないんだ

423 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:13:57.69 ID:Kkuf6Nxk0.net]
>>421
バカじゃないので黙らないw
ってか、俺を黙らせるのは不可能なのでNGにして
俺にくだらないレスしないようにしてください
俺にもくだらない反論(?)が来ないのでWIN♪WIN♪

424 名前:デフォルトの名無しさん [2018/11/01(木) 22:16:53.31 ID:zOBF+lvD0.net]
>>423
要するにバカやんけおまえ

425 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:19:28.46 ID:Kkuf6Nxk0.net]
まだNGにしてないのか?

426 名前:デフォルトの名無しさん [2018/11/01(木) 22:21:41.75 ID:zOBF+lvD0.net]
>>425
バカを嘲笑うのがおもろいのにNGにするわけないやろ
ホンマにバカやなおまえ

427 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:22:49.71 ID:45pCF+y00.net]
ああもぅめんどくせぇなw 順番変えたくないなら stable sort でええやんけ
メモリがどーたらこーたらは知らんw

$ cat hogehoge | awk '{print ($1%2?"b":"a") "\t" $1}' | sort -s -k1,1 | cut -f2

428 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:22:56.19 ID:Kkuf6Nxk0.net]
じゃあなんで黙れって言ったの?
俺が書き込みしなきゃ、お前出てこれないじゃん
矛盾してるよね。

429 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:23:55.45 ID:Kkuf6Nxk0.net]
>>427
いや、頑張らなくていいよw

430 名前:デフォルトの名無しさん [2018/11/01(木) 22:25:19.85 ID:zOBF+lvD0.net]
>>428
バカはしゃべるな

431 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:31:12.95 ID:zo7FxUKXr.net]
>>419
だから変数使えって言ってるんだよ
たいした理由も無いのに速度だリソースだって言ってるだけなんでしょ
だったら奇数用途偶数用を1回ずつ合計2回実行すればいいだけ



432 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:35:03.93 ID:Kkuf6Nxk0.net]
だから仕方ないかって書いてんのにw
ほんと人の話読まないやつだな

400 自分:デフォルトの名無しさん (ワッチョイ ab98-QXT6)[sage] 投稿日:2018/11/01(木) 19:51:11.07 ID:Kkuf6Nxk0 [4/15]
遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか

433 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:35:30.89 ID:bLNYdVH2a.net]
えっなにこれは…

434 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:36:17.06 ID:upF+pHX50.net]
tee(1)コマンド使ったらいけるかなとか考えたが無理かな。

435 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:43:09.27 ID:Kkuf6Nxk0.net]
>>434
片方ファイルだもんね。

メインプロセス起動(出力を2つに分岐)
├出力1 偶数行表示プロセス実行
└出力2 奇数行表示プロセス実行(偶数行表示プロセス終了後に処理開始)

みたいな事ができるかな?と思ったんだけど

まあ、これでも内部的には出力がバッファに
溜め込まれてるんだろうけどね

436 名前:デフォルトの名無しさん [2018/11/01(木) 22:48:35.54 ID:zo7FxUKXr.net]
>>432
お前ホントバカだな
お前のようなバカのためにプログラム書いてやったぞ

eo-sort.exe

第一引数に入力ファイルを渡せば標準出力に
まず偶数業出してその後に奇数業出してくれる
必要ならそれをファイルにリダイレクトしなよ

437 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:49:59.34 ID:Kkuf6Nxk0.net]
いらねっす

438 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:53:44.24 ID:zo7FxUKXr.net]
ああ、あと出し情報で偶数奇数じゃなかったんだよな
そりゃいらないわなw

439 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 22:54:34.69 ID:Kkuf6Nxk0.net]
え?あぁ、そうだな

440 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 23:01:11.09 ID:upF+pHX50.net]
>>435
というかよく読んだら「ファイルディスクリプタをうまく使う」ってそういうことだよね
teeっていうのはファイルと標準出力に書き込む「ファイルディスクリプタをうまく使う」コマンドの一つなんだからさ。
まあ俺には変数使わずに出力を分けるのは無理かな。

ところで変数使わない理由はPOSIXシェルスクリプトは変数のスコープができず
利用者が定義している定数を潰す可能性があるからって理解でいいのかな?

441 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 23:17:46.65 ID:JoiMeSvG0.net]
印刷して紙でやればメモリもディスクも使わないんじゃね?



442 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 23:22:18.99 ID:0eDQcpEPa.net]
天才か

443 名前:デフォルトの名無しさん mailto:sage [2018/11/01(木) 23:31:18.23 ID:45pCF+y00.net]
じゃぁ moreutils の pee コマンドでも使ったら

$ cat hogehoge | pee 'awk "!(\$1%2)"' 'awk "\$1%2"'

444 名前:デフォルトの名無しさん [2018/11/01(木) 23:58:02.32 ID:s+SrulDE0.net]
>>441
コペルニクス的転回だな。

445 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 00:25:05.23 ID:qf9daF/z0.net]
同じターミナルに出力するのが仕様間違いだろ。スクロールバックがめんどくさい。

446 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 01:50:44.73 ID:RWqagkCBM.net]
>>393
出来るぞ
もう諦めたのならまあいいか

447 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 03:41:34.10 ID:fhEBIQ700.net]
確かに

448 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 06:24:06.72 ID:tmRne/9W0.net]
>>443
これすごいね。
peeコマンドに可搬性を持たせられたらいいんだけど、それが問題だよね

449 名前:デフォルトの名無しさん [2018/11/02(金) 06:38:46.12 ID:BwjETkqh0.net]
あのう、プロセス動かすだけでメモリ消費してしまうんですが
変数や作業用ファイル作らなくても内部的な一時ファイルは作られるわけで
リソース消費しないで切り分けようとエディタ立ち上げて手作業でやっても、やっぱりリソース消費があるので
誰かが言ったように、ノートかなにかに手書き転記するしかないと思う

つうか、そんな人はコンピュータ使っちゃダメだと思う
まるで、経団連会長みたいなんだもの
最近会長室にコンピュータが導入されたらしい

あれこれ、たかが変数や作業用ファイル如きでリソース消費しないように考える時間など無駄中の無駄
なにも、惑星探査衛星の限られたリソースでなんとかするって話じゃないんだから
時間の使い方を間違っている
そんな下らない話題で、ここのスレのリソースも無駄遣い

450 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 07:18:03.73 ID:bE/8yEKV0.net]
>>446
諦めてないです!まってます!

451 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 07:42:30.53 ID:bE/8yEKV0.net]
>>448
> peeコマンドに可搬性を持たせられたらいいんだけど、それが問題だよね

こんなんでどう? peeコマンドのシェルスクリプト実装版
シェルスクリプトで実装したから外部コマンドだけじゃなくてシェル関数も呼べるよ

#!/bin/sh

pee() {
( ( (
while IFS= read -r line; do
printf '%s\n' "$line"
printf '%s\n' "$line" >&3
done | "$1" >&4) 3>&1 ) | "$2" ) 4>&1
}

foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }

pee foo bar



452 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 07:59:00.48 ID:bE/8yEKV0.net]
>>443

>>451のシェルスクリプト実装版もそうだけど、
俺の予想が正しければ、その2つのawkは並列に動作するんじゃないかな?
1つ目のコマンド実行が完了まで2つ目のコマンドの実行をブロックするとは
思えないので2つの出力は混じって出てくると思う。

プロセス起動のオーバーヘッドがあるから少量のデータだと
コマンド順に出力されるように見えるかもだけど

453 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 08:25:40.36 ID:bE/8yEKV0.net]
あれ? これでできてね?

最初こんな感じだったからブロックされずに混じって出てくることになったけど
foo() { cat -; }
bar() { cat -; }

こうしたせいで出力がブロックされてる気がする
foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }

454 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 08:26:07.31 ID:tmRne/9W0.net]
>>451
https://www.mankier.com/1/pee
これを読む限り引数は2つだけじゃないから,ちょっと機能不足かもね。
もちろん今回のあなたの目的には合うけど(2通りのパイプがあればそれで十分でしょう?)
ただ,もっと一般的なpee(1)コマンドを作ろうと思うと,
引数の数に応じてまずは雛形を作りそれをevalする,みたいな方法を採る必要があるかも。

455 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 08:41:23.56 ID:bE/8yEKV0.net]
>>454
複数対応だと面倒くさそう・・・
eval使えば可能だろうけど、文字列組み立てるのが

そう。今回書いた内容は>>453でできる。
だけど今回書いてないもう一つの制限があってそれで出来ない・・・
(制限っていうのはパイプで関数に渡すんじゃなくて変数で渡したい)

まあいいや、また長くなりそうだから質問閉じるわ
とりあえず変数使わずに出力をまとめることはできたし
あとは別の問題

456 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 09:19:53.88 ID:Rb6mIS4M0.net]
foo() { printf 'foo %s\n' "$(tail -n 1 -)"; }
bar() { printf 'bar %s\n' "$(head -n 1 -)"; }

ってして seq 1000 | ./pee.sh としたら実行する度に foo の値
が違ってるな…どちからの子プロセスが実行完了したら while
も終了するから仕方ないんだろうけど。trap '' PIPE ってすると
I/O error になるし

457 名前:デフォルトの名無しさん [2018/11/02(金) 09:45:49.16 ID:0QIYfvOaa.net]
>>449
> なにも、惑星探査衛星の限られたリソースでなんとかするって話じゃないんだから

いや知らんけどそういう極小環境なのかも知れんよ。そうでなければこんな要求出てこないと思うが。

458 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 09:56:03.14 ID:bE/8yEKV0.net]
>>457
正解。組み込みマシンも対象としている

459 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 09:59:54.78 ID:bE/8yEKV0.net]
限定的ながら変数で渡すっていうのが出来てしまったので晒す。多分使わない

#!/bin/sh
main() {
 index=0
 ( ( (
  while IFS= read -r line; do
   index=$((index+1))
   dumpvar_and_call "even"
   dumpvar_and_call "odd" >&3
  done | eval "$(cat -)" >&4) 3>&1 ) | eval "$(cat -)" ) 4>&1
}
dumpvar_and_call() { set; echo "$1"; }
even() {
 if [ $((line % 2)) = 0 ]; then
  echo "index:$index even $line"
  sleep 1
 fi
}
odd() {
 if [ $((line % 2)) = 1 ]; then
  echo "index:$index odd $line"
 fi
}
main<<HERE
3
6
7
4
2
8
HERE

460 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 10:03:43.36 ID:bE/8yEKV0.net]
なんで使わないかというと、変数をパイプで渡すために
setでシェル変数をダンプして、evalしてるんだが、
bashでは読み取り専用変数があってエラーになるから

setの出力をあれこれフィルタすればできると思うが、
変数の中に改行が入ってる場合とか対応が面倒

bashなら変数名に特定のプリフィックスがついたものだけ
ダンプできたとは思うが他のシェルではそうは行かない

また、行ごとに変数すべてをsetしてevalとか
パフォーマンス悪そうだし。

461 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 10:11:28.72 ID:GFVwJxnL0.net]
>>457
そんな環境でPosix縛りだとしたら、プロジェクト自体が間違ってる。



462 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 10:16:42.75 ID:bE/8yEKV0.net]
> そんな環境でPosix縛りだとしたら
実はPOSIXよりも状況が悪いw

使える機能がPOSIX未満なんだよ。
つまり一部の機能しか実装されていない

463 名前:デフォルトの名無しさん mailto:sage [2018/11/02(金) 11:47:49.42 ID:tmRne/9W0.net]
ただの愚痴だけど
POSIXユーティリティにネットワーク通信が含まれてないのってマジで致命的欠陥だと思う。
POSIX原理主義とか,たしかに素晴らしい考えだとは思うけど,ネットワーク通信なくして現在のコンピュータを管理・運用するのは不可能っていうか
もしできてもすごくつまらないでしょう。

464 名前:デフォルトの名無しさん [2018/11/02(金) 12:35:03.14 ID:e7WVTJJGr.net]
なんでバカって大げさに言いたがるんやw
致命的てwww

465 名前:デフォルトの名無しさん [2018/11/02(金) 13:04:44.69 ID:0QIYfvOaa.net]
>>464
大袈裟に言うなよ

466 名前:デフォルトの名無しさん [2018/11/02(金) 19:08:56.10 ID:a5BSTCMR0.net]
なぜか悔しがって意味不明なバカ>>465
どないなっとんねんおまえらwww

467 名前:デフォルトの名無しさん [2018/11/02(金) 23:14:17.14 ID:KoqyjIsr0.net]
アンリカバブルな低学歴知恵遅れだからしょうがない

468 名前:デフォルトの名無しさん [2018/11/03(土) 05:20:12.41 ID:vg8hCxXN0.net]
大げさだなあ

469 名前:デフォルトの名無しさん mailto:sage [2018/11/03(土) 06:43:33.72 ID:9hr0em1cM.net]
日常的に誇大妄想が激しいんだろ

470 名前:デフォルトの名無しさん [2018/11/03(土) 17:50:12.58 ID:GQ9FpTGT0.net]
MicroPythonを実装した方が良さそう
組込にも対応してるから

471 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 08:48:54.81 ID:S8h/cDRc0.net]
コマンドを作っていてすこし疑問に思ったことなんだけど
--helpオプションで出力される文章って太字や着色なんかで装飾してもいいのかな。
「いいのかな」っていうか、そういうことしてるコマンドをほとんどみかけないので
もしかしたら「--helpオプションで出力される文章は装飾しないように」っていう規約がどこかにあるのかな と思ってさ。



472 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 10:11:04.15 ID:Nn4ZdlZB0.net]
>>471
それはいいアイデアだな。
コマンドの出力とは違ってヘルプを入力するプログラムなんて
無いだろうし、カラー専用でもいいくらいなんじゃないか?

そう考えると、manとかinfoもカラーにするべきなんだろうな
今どきカラー使えないとかまず無いし

色ももう16色に拘る必要もないだろう
最低でも256色、24bitカラーも普通に使っていいだろう

473 名前:デフォルトの名無しさん [2018/11/04(日) 10:12:08.50 ID:iTJ8u5Nd0.net]
>>471
どこかにあったとしその素性のわからん規約におまえが従う必要ないやんアホなん?

474 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:08:19.99 ID:Ok+6IZd3a.net]
慣習は先人の知恵が詰まってる場合もある
自分勝手に振る舞う自称合理的よりよっぽど賢い質問だと思う

AIXはmanが黄色とか太字とかで修飾されてた気がするな

475 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:17:07.51 ID:Nn4ZdlZB0.net]
Linuxでmanを少しカラフルで見やすくする
https://orebibou.com/2016/12/linux%E3%81%A7man%E3%82%92%E5%B0%91%E3%81%97%E3%82%AB%E3%83%A9%E3%83%95%E3%83%AB%E3%81%A7%E8%A6%8B%E3%82%84%E3%81%99%E3%81%8F%E3%81%99%E3%82%8B/

へー

476 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:18:53.69 ID:Nn4ZdlZB0.net]
↑ふざけとんのか

BASH(1) General Commands Manual BASH(1)

名名前前
bash - GNU Bourne-Again SHell

書書式式
bash [options] [file]

著著作作権権
Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.

説説明明
bash は、標準入力やファイルから読み込んだコマンドを実行する、 sh 互換のコマンド言語インタプリタです。 bash に
は、Korn シェルや C シェル ksh や csh) の便利な機能も採り入れられています。

bash は IEEE POSIX specification (IEEE Standard 1003.1) の Shell and Utilities に準拠する実装を目指していま
す。 bash はデフォルトで POSIX 準拠に設定することもできます。

オオププシショョンン

477 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:25:16.76 ID:Nn4ZdlZB0.net]
これでまともになった
raimon49.github.io/2017/03/31/man-with-colored-pager.html

478 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 11:56:45.43 ID:S8h/cDRc0.net]
>>472
24bitカラーはまだマズいと思う。
多くのXデスクトップ環境で利用されてる端末エミュレータ
(GNOME TerminalとかLXTerminalとか)は
LibVTEベースなのよ。
そしてLibVTEの安定板は24bitカラーには対応してない。

479 名前:デフォルトの名無しさん [2018/11/04(日) 12:58:38.32 ID:MKH8Qowh0.net]
そういうのを根本的に対応できるようにするなら
roffが対応する部分になるからな

このスレでやってることは
池沼の塗り絵

480 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 13:16:39.02 ID:Nn4ZdlZB0.net]
>>478
WSLは対応したのに?

WSL その41 - Windowsのコンソールが24bitカラーをサポート・Bashからカラフルな出力が可能に
https://kledgeb.blogspot.com/2016/09/wsl-41-windows24bitbash.html

481 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 16:48:40.44 ID:V6s3/sLe0.net]
>>480
ま,まぁ? 24bitカラーなんて端末エミュレータの本来の機能じゃないし? (震え声)



482 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 20:50:30.36 ID:eEexL0w40.net]
>>480
じゃあそこからsshでログインすればいいじゃん。


これにて一件落着。

483 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 20:58:33.34 ID:Nn4ZdlZB0.net]
>>482
俺に言うなってw

24bitカラーも普通に使っていいだろうって
最初から言ってるだろ

484 名前:デフォルトの名無しさん mailto:sage [2018/11/04(日) 23:47:16.17 ID:EATzJZ5p0.net]
そして寒い寒いマシン室に押し込められる可哀想な
おじさん達のことは誰も考えてくれないんだよな。

485 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 00:50:02.70 ID:8mReqxsGa.net]
かわいそう

486 名前:デフォルトの名無しさん mailto:sage [2018/11/05(月) 01:09:40.53 ID:LRv++2Wv0.net]
マシン室が

487 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 16:17:47.15 ID:Vcs848wz0.net]
... | sort -k 2.2 や
... | uniq -c
のような、パイプ挟んでもオプション使えるシェルスクリプトが書けません
これはどうやればいいのでしょうか?

488 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 16:19:39.11 ID:cucsRggBM.net]
理解不能

489 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 16:27:38.20 ID:Vcs848wz0.net]
... | perl -0777 -ne 'print grep(m{ココ1}i, split("(?=ココ2)", $_));'
例えばこのような文脈で動作させていたものを
パイプ移行をシェルスクリプトに書いておき
変数ココ1 ココ2 に渡して処理したいのです

| split_grep.sh ココ1 ココ2 
このように動作させたいのですが
$1 $2 ... などを見ても 参照できてなくて困っています

490 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 16:53:48.26 ID:7Ll1zO1lM.net]
' だからじゃねえか?適切に " を使え。

491 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 18:09:54.51 ID:dlj8br7m0.net]
--helpオプションで出力される手引きの装飾についてだが
less(1)ユーティリティは太字とにしてるね。



492 名前:デフォルトの名無しさん mailto:sage [2018/11/06(火) 23:18:09.57 ID:9jHKU1L00.net]
シェルスクリプトは20年動くとか言ってるやつがいるけど、
あれ嘘だなぁ。

各シェルの実装は互換性がない部分があるし、
同じシェルでもバージョンが変わると微妙に動きが変わる

POSIXという仕様があってもそれを完全に実装しているとは
限らないしバグもある。

20年前のJavaScriptと同じようなレベルだ。
そのJavaScriptも20年前のものが今でも動いているからねw

今のJavaScriptは本当にどれもで同じように動くようになったけど20年前は大変だった。
どのシェルでも同じように動くシェルスクリプトを書くのは今でも大変だよ
一度互換性テストでもやって準拠度100%を達成を競わせたほうが良いだろう

493 名前:デフォルトの名無しさん mailto:sage [2018/11/07(水) 03:53:59.64 ID:XzpCa+6s0.net]
「POSIXという一つの規格」がなぜそんなに強力だと思うのか分からない。
Pythonの公式文書やECMAが規格するJavaScriptと同等の立場でしょう。
もちろん,俺がシェルスクリプトを書くときは,俺がPythonやJavaScriptを書くときと同じく
POSIXという共通規格に従うようにしているが,それは今後20年動かす為じゃない。






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

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

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