[過去ログ] くだらねえ質問はここに書き込め! Part 238 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
309
(5): 2019/11/09(土)08:34 ID:D2VWNujE(1) AAS
$ echo | awk '{print "foo"}'

foo

どうして、echo | が最初にくるんでしょうか?

むしろ、awk '{print "foo"}' | echo なような気がするんですが。
awk '{print "foo"}' | cat でも動作しませんでした。
311
(2): 2019/11/09(土)14:05 ID:xojf+Nq8(1/2) AAS
>>309
> $ echo | awk '{print "foo"}'

通常は
$ awk 'BEGIN{print "foo"}'
などと書くのを、そいつが知らないだけ。おそらく gawk infoなどを読んだ事の無いやつ。
313
(1): 2019/11/09(土)21:09 ID:DEygmiZM(1/2) AAS
>>311
>>309はawkの使い方を尋ねているのか。
たずねているのは並び順についてではないのか
awk '{print "foo"}' | echo
>>309としてはfooと表示させる正しい順番のような気がするが、
でも、ダメ(ダメな理由は何?)で、逆の
echo | awk '{print "foo"}'
だとfooと表示される。どうしてこれが正しいか順番(|の右左を入れ替えた)になるんですか?
が質問の主旨じゃないのか
俺は低脳でシェルスクリプト分からんから答えられないが。
316
(1): 2019/11/09(土)22:33 ID:0GqOJkPU(2/2) AAS
>>315
そもそも>>309の書き方が正しいみたいな前提から始まってるのがおかしいんじゃないか
echoの出力 (この場合は引数なしだから空) をパイプでawkに渡してるけど、awkも受け取った入力を使うわけでもなくただ "foo" を出力するだけだから結果として foo が出力される
echo foo bar | awk '{ print $1 }'
echo foo bar | awk '{ print $2 }'
を実行してみると多少は意味のある(応用の効く)結果になる
318
(1): 2019/11/10(日)01:54 ID:CCfYPyiM(1) AAS
>>309
$ awk '{print "foo"}'
だと入力が指定されていませんから、標準入力(キーボードから打ち込む)待ち状態になります
動作していないのではなく待ち状態
何か文字を打ち込んでエンターキーを押せばfooが表示出力されます
その出力をechoやcatへ渡すのは???です
319
(1): 2019/11/10(日)02:30 ID:ctoiO8PJ(1/2) AAS
>>309
> awk '{print "foo"}' | cat でも動作しませんでした
動いているけど標準入力で待ちになってるから、わかりづらいだけだと思う
ABCとか適当に何かうって、CTRL-Dすればfooが最後に出力される
上の方の指摘通りBEGINつければawk '{print "foo"}' | catですぐにfooが返ってくる

awk '{print "foo"}' | echo もechoで標準入力待ち状態になってる。
しかしcatと違ってechoが新たに標準入力作ちゃってる( 上書き?)から、
適当に入力してもfooは返ってこない
awk 'BEGIN {print "foo"}' | echo も空白になる。

この例でecho でfooを表示させるには
省4
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s