«前の日(03-23) 最新 次の日(03-25)» 追記

徒然日記


2006年3月24日(金) この日を編集

引っ越しました

場所は駒込です

入居日は22日だったんだけど、寝泊りするのは今夜から。

家具がないと寂しいのぅ〜


2009年3月24日(火) この日を編集

readコマンド

$ cat file | while read A B ; do
	echo $A
	echo $B
done

こんなsyntaxはよく使うと思うのだけど fileの中身が1行とか、コマンドの出力を変数に代入するばあいはwhileはずしても大丈夫だべ。と思って以下のようにした。

$ echo "hoge fuga" | read A B
$ echo $A
$ echo $B

これの結果は

hoge
fuga

になってほしかったのだが、bashでは空値(空行2行)になる。zshでは上述の出力になるので望んだとおり。

bashで正しく表示させるには

$ echo "hoge fuga" | (read A B ; echo $A ; echo $B)

とsub shellにするなりしてブロックしてやらないとダメ。

わけわからなくてウンウン悩みました…

本日のツッコミ(全1件) [ツッコミを入れる]

# kitaj [そりゃ別プロセスのbashでreadしてるんだから元のbashの$Aとかには反映されないよね. むしろzshの方が変..]




«前の日(03-23) 最新 次の日(03-25)»