シェルプログラミング初心者の鳥(V)入力と出力のリダイレクト

アクションをリダイレクト

デフォルトの標準入力、標準出力、エラー出力3ファイルディスクリプタで開かれたプロセス。

私たちはエラー出力をリダイレクトするためのプログラム情報ファイルの標準出力をリダイレクトしてみましょう、このファイルの内容も入力する方法として、標準キーボードに置き換えることができます。


リダイレクション記号

  • 入力リダイレクト記号「<

  • 出力のリダイレクト記号「>」、「>>」、「2>」、「&>


入力のリダイレクト

01入力のリダイレクト記号「<」役割:

コンテンツは、プロセスへのパラメータ入力として、以下の例を提出します。

[root@omp120 home]# cat file.txt 
hello
[root@omp120 home]# read a < file.txt 
[root@omp120 home]# echo $a
hello

file.txtをファイルの内容は、上記の例はにリダイレクトfile.txtを内容であり、ハローでaこの変数、及びaバリアブル印刷。


出力のリダイレクト

01出力のリダイレクト記号「>」役割:

内容ファイルウィル空にし、次の例を、出力の内容は、指定したファイルにリダイレクトされ、ファイルが存在しない場合は作成されます。

[root@lincoding tmp]# echo 123 > /tmp/test
[root@lincoding tmp]# cat /tmp/test 
123
[root@lincoding tmp]# echo abc > /tmp/test
[root@lincoding tmp]# cat /tmp/test 
abc
02出力のリダイレクト記号「>>」役割:

コンテンツの出力がされます追加指定されたファイルに、ファイルが空ではなく、ファイルが存在しない場合には、次の例を作成されます。

[root@lincoding tmp]# echo 123 >> /tmp/test
[root@lincoding tmp]# cat /tmp/test
123
[root@lincoding tmp]# echo abc >> /tmp/test
[root@lincoding tmp]# cat /tmp/test 
123
abc
03出力のリダイレクト記号「2>」役割:

プロセスは、エラー出力指定したファイルにリダイレクトされたコンテンツは、次の例:

[root@lincoding home]# abc 
-bash: abc: command not found
[root@lincoding home]# abc > error.txt
-bash: abc: command not found
[root@lincoding home]# cat error.txt 
[root@lincoding home]# 
[root@lincoding home]# abc 2> error.txt
[root@lincoding home]# cat error.txt 
-bash: abc: command not found

上記の結果は、ABCは、Linuxのコマンドの実行がアブドコマンドが見つからない場合、エラーメッセージ出力を言ってエラーになりますではないことを証明している、エラーメッセージが使用する必要があり2>、指定したファイルにリダイレクトエラー出力の内容を処理するために、リダイレクト記号を。

04出力のリダイレクト記号「&>」役割:

出力処理情報が正しいか、間違った情報であるかどうか、それは、指定したファイルに次の例をリダイレクトされます。

[root@lincoding home]# abc &> file.txt
[root@lincoding home]# cat file.txt 
-bash: abc: command not found
[root@lincoding home]# free -m &> file.txt
[root@lincoding home]# cat file.txt 
             total       used       free     shared    buffers     cached
Mem:           980        918         62          0         71        547
-/+ buffers/cache:        299        681
Swap:         1983          0       1983

入力と出力のリダイレクト組み合わせのリダイレクト

入力と出力を組み合わせて使用​​することができ、その後、組成物は、主に新しいシーンプロファイルを生成するために使用されるシェル・スクリプト、例として次のスクリプトシェル:

#!/bin/bash
cat > /home/a.sh << EOF
echo "hello bash"
EOF

catコマンドの出力は、リダイレクトされ/root/a.shたスクリプトファイルと入力EOFは、スクリプトの最後でリダイレクトします。その後、このスクリプトを実行することで、コンテンツが生成されますecho "hello bash"という名前のファイルa.shのスクリプトファイルを。

結果:

[root@lincoding home]# ./test.sh 
[root@lincoding home]# ls -l a.sh 
-rw-r--r--. 1 root root 18 Sep 27 16:41 a.sh
[root@lincoding home]# chmod u+x a.sh 
[root@lincoding home]# cat a.sh 
echo "hello bash"
[root@lincoding home]# ./a.sh 
hello bash

概要

上記の内容は、入力と出力のリダイレクションの使用法についてです、そして、我々は出力をリダイレクトするように注意を払う必要が含まれてカバーし、追加モードを上書きまたは追加のいずれか、モードを、私たちのシステム構成ファイルで使用されないようにしてみてください、それは注意すべきで適用する前に、バックアップ用のシステムファイル。

入力と出力のリダイレクトもシェルスクリプトは新しい設定ファイルの中で生成する際に、一般的には、組み合わせて使用​​することができ、彼らはいくつかの方法を組み合わせて使用​​します。

おすすめ

転載: www.cnblogs.com/xiaolincoding/p/11601021.html