LoginSignup
0
0

More than 3 years have passed since last update.

Bashのファイルリダイレクトの優先順位 ('>' | '>>' | '<') について

Last updated at Posted at 2021-01-11

bashでの> >> <の扱い

minishellの実装にあたり、bashの最もシンプルな> >> <の3つのファイル出入力リダイレクトの仕様をまとめました。

< <<: ファイルのインプット (上書き、追記)

① 引数は複数指定可能

$ cat aaa.txt bbb.txt
aaa
bbb 
② リダイレクトは最後が一つだけ読み込まれる
$ cat < aaa.txt < bbb.txt 
bbb
③ 引数とリダイレクトだと引数が優先
$ cat < aaa.txt bbb.txt 
bbb
$ cat aaa.txt < bbb.txt 
aaa
$ cat < aaa.txt bbb.txt < ccc.txt 
bbb

> : ファイルのアウトプット

① アウトプットは最後のファイルのみ実行される
$ cat aaa.txt bbb.txt > output1.txt > output2.txt 
$ cat output1.txt
$ cat output2.txt
aaa
bbb
② アウトプットはどこに書いてもいい
$ cat > output1.txt aaa.txt bbb.txt
$ cat output1.txt
aaa
bbb
$ cat aaa.txt > output1.txt bbb.txt
$ cat output1.txt
aaa
bbb

実装の観点から

① インプットは引数優先

  • 引数を入力ファイルとして追加していく
  • 引数がない間<ごとに入力ファイルを上書きしていく
  • 引数を見つけた時点でリダイレクトの入力ファイルは無視

② アウトプット先は一つ

  • デフォルトは標準出力
  • >ごとに出力先を上書きしていく

以上です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0