awk ファンクラブ (333レス)
上
下
前
次
1-
新
249
(1)
:
247
2019/12/12(木)16:49
ID:Ks56aDFp(1/2)
AA×
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
249: 247 [sage] 2019/12/12(木) 16:49:42.78 ID:Ks56aDFp bash でも出来なくはないと思う。読むだけならいくらでも出来る。 しかし、「残さず食べる」ということを考えると read -n はちょっと… なぜこれを考える必要があるかというと、食べ残しがあるとたとえばシェルの場合なら それをコマンドラインだと思って読んでしまっだりする。 read -n は食べ残しが無かったら入力待ちになってしまうので適していないと思う。 他人に使わせるプログラムなら常に意識しておくべきことかもしれない。 そこで、まだ試してないならこんなことを試してみてほしい。 BEGIN { cmd = "bash -c 'TMOUT=5 ; read -N 8 v ; echo \"$v\" ;'" for( i = 0; i < 8; i++){ while ( 0 < ( cmd | getline)){ print "i=" i ", 0=[" $0 "]" } close( cmd) } } 得られたデータの長さが指定した長さに達していないならタイムアウトで終了した。 つまり、食べ残しは無いということになると思う。 ただし、改行の扱いがめんどくさい。 bash は read で読んだ改行をちゃんと送っているのだが getline が削除してしまう。 そして最後の改行は echo が加えたもので、read で読んだのではない。 awk の方で RS の値を変えることでめんどくささが減る可能性はある。 しかしやはり最終結果だけを 1 行で受け取るほうがいいかもしれない。 もっとも、入力元を共有しているから食べ残しが問題になるのであって 新たに端末エミュレータを起動してその上で実行するのなら問題にならない。 パイプが繋がらないから別の方法で結果を返す必要はあるが、メニューを出して ユーザに選択させるという用途なら悪くない方法かもしれない。 http://mao.5ch.net/test/read.cgi/linux/1215431118/249
でも出来なくはないと思う読むだけならいくらでも出来る しかし残さず食べるということを考えると はちょっと なぜこれを考える必要があるかというと食べ残しがあるとたとえばシェルの場合なら それをコマンドラインだと思って読んでしまっだりする は食べ残しが無かったら入力待ちになってしまうので適していないと思う 他人に使わせるプログラムなら常に意識しておくべきことかもしれない そこでまだ試してないならこんなことを試してみてほしい 得られたデータの長さが指定した長さに達していないならタイムアウトで終了した つまり食べ残しは無いということになると思う ただし改行の扱いがめんどくさい は で読んだ改行をちゃんと送っているのだが が削除してしまう そして最後の改行は が加えたもので で読んだのではない の方で の値を変えることでめんどくささが減る可能性はある しかしやはり最終結果だけを 行で受け取るほうがいいかもしれない もっとも入力元を共有しているから食べ残しが問題になるのであって 新たに端末エミュレータを起動してその上で実行するのなら問題にならない パイプが繋がらないから別の方法で結果を返す必要はあるがメニューを出して ユーザに選択させるという用途なら悪くない方法かもしれない
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 84 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.066s