X



シェルスクリプト総合 その29
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 3efb-m2E0)
垢版 |
2018/09/22(土) 11:53:21.38ID:BBiLRgnj0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。

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

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

前スレ
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0347デフォルトの名無しさん (ワッチョイ 5b98-o90R)
垢版 |
2018/10/28(日) 19:05:49.36ID:XoYPKH7l0
>>344
最終的にやりたいことは

script1.sh ・・・ サブプロセスの標準出力・標準エラー出力を総てキャプチャしたい
script2.sh ・・・ 標準出力・標準エラー出力を行い、CTRL+Cを押されたら(trapして)
          CTRL+Cが押されたと標準エラー出力に出力したい

ってことなんだよね

> そもそもCTRL+Cなんだからそんなギリを気にすんなってとこか
そういうことだし、諦めて一つのスクリプトにしてやりたいことは
解決できたのでもう深追いする気はなくなってる

あと関係ないけど、SIGINTってPOSIXじゃないみたいだなw
INTを使えってshellcheckに怒られた。みんな SIG SIG 言ってるのに
0348デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 20:03:04.22ID:gJfQRhUl0
なにその勝手にやる気なくすなよw ほんとに身勝手だな、いつも通り
SIGINTはPOSIXだからな(なぞ)。そっち寄りのの人は普通に使ってしまうんじゃね。てか、んなの本題に関係ないだろうに、そんなこと言いたいのはわかるけどさ(なぞ)
0352デフォルトの名無しさん (ワッチョイ 5b98-o90R)
垢版 |
2018/10/28(日) 20:30:59.64ID:XoYPKH7l0
>>350
やる気ではなくて、POSIX縛りは必須要件なので
サブプロセスの標準エラー出力の件は、別の方法で解決できることなので

数値でも指定できるのは知ってる。trap SIGINTとかSIGINT抜けてたとか
かいてあるから、trap INT、INT抜けてただよって言ってるだけ
0353デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 20:36:08.52ID:gJfQRhUl0
また、後出しか。そんなレスしている目的は違うだろうw
いきなり「数値でも指定できるのは知ってる」とか??(3)に対して???

http://pubs.opengroup.org/onlinepubs/007904975/utilities/trap.html
(新しいドキュメントはどこだ?)
SIG付きもPOSIX仕様のようだけどなwオプションでも言及しているんだからPOSIXの仕様のひとつだろう
なんて、アホなやりとりしたいの?
0359デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 20:56:45.89ID:gJfQRhUl0
だから最初は「(なぞ)」にしてたやん
>>347の最後あたりの応えとしてしかない。お前が変なツッコミするから悪い
ちなみに、>>353のPOSIXドキュメントでも (3) のことに言及しているのはどう思う?UNIX/Linuxはそんな境目はそれほど無いと思うけど。誰かみたいに(1)しか興味ない知らない人もいるだろうけど

単に知らなかっただけでいいのに、いつも偉そうにしているからドツボにはまってるように見えなくもないw
0360デフォルトの名無しさん (ワッチョイ 5b98-o90R)
垢版 |
2018/10/28(日) 21:00:00.71ID:XoYPKH7l0
> ちなみに、>>353のPOSIXドキュメントでも (3) のことに言及しているのはどう思う?

それが、シェルスクリプトだけのドキュメントじゃなくて、POSIXのドキュメントだからでしょう???
なにがいいたいんだか
0365デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 21:37:09.45ID:gJfQRhUl0
>>363
で?その目的がわからんな。単に素直な疑問なだけなら、>>348で応えているけど。話を振ってねちっこく続けているのは誰なの?>>349とか以後とか
それも>>353でお前は納得したんだろ?


なんか上でC++のことを偉そうにのたまっているのを誤爆したのお前じゃなかったっけ?
それがお前じゃなくても、なんでコマンド関連のCなんて簡単なのにそんなに知らないのか不思議だな、なんか異常にシェルスクリプト「だけ」に拘るのもあって

UNIX/Linux界隈では自分でCでコマンド書く(簡単なフィルタも)のも普通にいるだろうから、お前のようにシェルスクリプトだけしか言ってはいけないなんてないと思うけどな(それも俺からは単にお前の間違いをごまかすためだけにしか見えんからw)

>>362は俺に振ってもいいが、なにを聞いているのか傍目にもわからないw すまんが、も少し具体的に>>362
0368デフォルトの名無しさん (ワッチョイ 5b98-o90R)
垢版 |
2018/10/28(日) 21:49:30.03ID:XoYPKH7l0
>>365
コマンド?
もしかして、trapがコマンドだと思ってる?
シェルビルトイン関数だよ

シェルのプロセスでシグナルを扱わなきゃいけないから
外部コマンドで実装することは不可能

だからシェルスクリプトスレでtrapの話をするならば
シェルスクリプト前提になるのは当然だろう?
0369デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 21:53:11.18ID:gJfQRhUl0
>>368
そういう細かいことは言いたいのね。大枠でコマンドでいいじゃん (1) の範疇なんだから

その二行目以降はイミフ。なにを言っているの?言いたいの?
お前から見てミスを論ってなんとかお前のなにかを保ちたいだけにしか見えない
0375デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
垢版 |
2018/10/28(日) 22:07:32.28ID:gJfQRhUl0
>>373,374
はあ?無茶苦茶やな
その答えはすでに応えているけど。「みんな SIG SIG 言ってるのに」のに対する応えを含めての
それも最初に。それも話の流れで、お前も納得勉強wになっただろうにww

よほど「お前のなにかを保ちたい」が琴線だったようだねえw
0380デフォルトの名無しさん (ワッチョイ 9764-Ed1r)
垢版 |
2018/10/28(日) 23:38:46.03ID:5IpH1DwA0
シグナルを送信するコマンドの名前がsigとかじゃなくkillなのはなぜでしょうか。
例によって歴史的経緯? 元々はSIGKILLシグナルしか送信しなかったのでkillとか。
0384デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/29(月) 22:10:10.39ID:JGxixszg0
村に戻って親が死んでたら
そいつは手遅れコロスしかない
親はいつまでも待っていない
0391デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/30(火) 23:49:50.18ID:H/liFP070
いや手遅れ
親がしんでたらゾンビスプロセスになる
殺すしかない
0393デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 17:53:36.33ID:Kkuf6Nxk0
一回のループでファイルや変数を使わずに、偶数行と奇数行にまとめられないかなぁ?

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

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

ファイルディスクリプタをうまく使えばできるんじゃないか?
と思ってたりするけどうまくいかない
0394デフォルトの名無しさん (アウアウウー Sac7-AdN2)
垢版 |
2018/11/01(木) 18:26:55.97ID:OxvwXsOaa
変数も使っちゃダメなのか。うーん。
0396デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 18:50:36.53ID:Kkuf6Nxk0
>>395
sedでできるならsedでもいいけど。

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

二回のループにするなら、メモリもディスクも消費しないけど
今度は入力データをためておく必要がある
0399デフォルトの名無しさん (アウアウウー Sac7-AdN2)
垢版 |
2018/11/01(木) 19:46:11.92ID:OxvwXsOaa
元データがファイルに入っていて2回読んで良くて尚且つ変数使って良いなら楽だよ、っていうかそれなら誰でも作れるかw
0400デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 19:51:11.07ID:Kkuf6Nxk0
遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか

実際には偶数行、奇数行じゃなくて、データを種類ごとに前後に分けたくて
後ろに分けるデータは基本的に少ないってことがせめてもの救いか
0401デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 19:58:02.45ID:zOBF+lvD0
なんでバカって実行速度ばかり気にするんや?
0403デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 20:00:23.29ID:zOBF+lvD0
バカなのにストレスたまるの?バカやめたら?
0404デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 20:03:44.33ID:Kkuf6Nxk0
その理屈だと、
・バカなのにストレス溜まるの?(不思議)
・バカじゃないならストレス溜まる(普通)
ってことになるから、

バカやめたら、それこそストレス溜まるのでは?
0405デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 20:18:26.34ID:zOBF+lvD0
バカの理屈わろたw
バカなんやから考えん方がええで
0407デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 20:37:24.98ID:zOBF+lvD0
バカに言いかえすとか無理やわ理屈がないからバカなんやでおまえ
0410デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 20:50:42.34ID:zOBF+lvD0
バカとバカを嘲笑う者や
0411デフォルトの名無しさん (ワッチョイ 4e81-8AGB)
垢版 |
2018/11/01(木) 20:51:14.40ID:5U41yww90
奇数行だけ抽出するスクリプトと
偶数行だけの二つ作って、
奇数行スクリプトの出力に偶数行のを追記させる

なんとなくそんなイメージ
0412デフォルトの名無しさん (オッペケ Srbb-elto)
垢版 |
2018/11/01(木) 21:54:51.76ID:zo7FxUKXr
速度言うならCなりJavaで書いてデーモン化して動かさんとな
シェルスクリプト特有のコマンド羅列のプロセス起動しまくりってのは
すごいコストがかかってる
0414デフォルトの名無しさん (オッペケ Srbb-elto)
垢版 |
2018/11/01(木) 21:58:38.71ID:zo7FxUKXr
>>404
いや普通なら落としどころ決めるだろ
シェルスクリプトだからあきらめるとか
ちゃんとした言語で作るとか
バカだから漠然と心配ばかりしてストレスが溜まる
今も月が落ちてくる心配でもしてるんじゃないの
0416デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 21:59:49.59ID:zOBF+lvD0
>>413
シェルが固まったんやがウイルスちゃうやろな?直しかた教えろバカ
0421デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 22:09:12.59ID:zOBF+lvD0
バカはいいかげん黙っとけ
0422デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 22:12:35.86ID:Kkuf6Nxk0
>>413
結局はそれ、二回読み込んでるんだよね

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

あと>>393の例が良くなかったけど、入力ファイルは昇順とは限らなくて
偶数グループと奇数グループにわけるだけで、順番は変えたくないんだ
0423デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 22:13:57.69ID:Kkuf6Nxk0
>>421
バカじゃないので黙らないw
ってか、俺を黙らせるのは不可能なのでNGにして
俺にくだらないレスしないようにしてください
俺にもくだらない反論(?)が来ないのでWIN♪WIN♪
0424デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 22:16:53.31ID:zOBF+lvD0
>>423
要するにバカやんけおまえ
0426デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 22:21:41.75ID:zOBF+lvD0
>>425
バカを嘲笑うのがおもろいのにNGにするわけないやろ
ホンマにバカやなおまえ
0427デフォルトの名無しさん (ワッチョイ 9ab3-gRbH)
垢版 |
2018/11/01(木) 22:22:49.71ID:45pCF+y00
ああもぅめんどくせぇなw 順番変えたくないなら stable sort でええやんけ
メモリがどーたらこーたらは知らんw

$ cat hogehoge | awk '{print ($1%2?"b":"a") "\t" $1}' | sort -s -k1,1 | cut -f2
0430デフォルトの名無しさん (ワッチョイ c703-gRbH)
垢版 |
2018/11/01(木) 22:25:19.85ID:zOBF+lvD0
>>428
バカはしゃべるな
0432デフォルトの名無しさん (ワッチョイ ab98-QXT6)
垢版 |
2018/11/01(木) 22:35:03.93ID:Kkuf6Nxk0
だから仕方ないかって書いてんのにw
ほんと人の話読まないやつだな

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

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

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

まあ、これでも内部的には出力がバッファに
溜め込まれてるんだろうけどね
0436デフォルトの名無しさん (オッペケ Srbb-elto)
垢版 |
2018/11/01(木) 22:48:35.54ID:zo7FxUKXr
>>432
お前ホントバカだな
お前のようなバカのためにプログラム書いてやったぞ

eo-sort.exe

第一引数に入力ファイルを渡せば標準出力に
まず偶数業出してその後に奇数業出してくれる
必要ならそれをファイルにリダイレクトしなよ
0440デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
垢版 |
2018/11/01(木) 23:01:11.09ID:upF+pHX50
>>435
というかよく読んだら「ファイルディスクリプタをうまく使う」ってそういうことだよね
teeっていうのはファイルと標準出力に書き込む「ファイルディスクリプタをうまく使う」コマンドの一つなんだからさ。
まあ俺には変数使わずに出力を分けるのは無理かな。

ところで変数使わない理由はPOSIXシェルスクリプトは変数のスコープができず
利用者が定義している定数を潰す可能性があるからって理解でいいのかな?
0444デフォルトの名無しさん (ワッチョイ 769f-MyS3)
垢版 |
2018/11/01(木) 23:58:02.32ID:s+SrulDE0
>>441
コペルニクス的転回だな。
■ このスレッドは過去ログ倉庫に格納されています