command > | 출력을 파일로 리디렉션 |
명령 < ; file | 은 입력을 file |
명령 >> file | 로 추가하여 출력을 파일로 리디렉션합니다. file | 은 파일 설명자를 n으로 설정합니다.
n >> file
은 |
|
n >& m
을 추가하여 파일 설명자 n이 있는 파일을 file로 리디렉션합니다. m과 n merge |
|
n 79e4ed7632475f1ac75d5c1ac0c22915> 연산자를 사용하세요. (2) 분석 예[root@localhost ~]# w
20:41:36 up 55 days, 5:17, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 223.166.20.53 20:24 0.00s 0.05s 0.00s w
[root@localshost ~]# w > users #w命令执行后的结果输出到users文件中
[root@localshost ~]# ll
-rw-r--r-- 1 root root 204 Jan 3 20:41 users
[root@localshost ~]# cat users #查看users文件内容,正是w命令执行后的输出结果
20:41:58 up 55 days, 5:17, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 223.166.20.53 20:24 6.00s 0.05s 0.00s w
[root@localshost ~]# who
root pts/0 2021-01-03 20:24 (223.166.20.53)
[root@localshost ~]# who > users #将who命令执行结果输出重定向到users文件
[root@localshost ~]# cat users #发现users文件中原先w命令的输出内容被who命令覆盖了
root pts/0 2021-01-03 20:24 (223.166.20.53)
[root@localshost ~]# echo "Hello world" >> users #使用>>操作符则会追加在后面输出
[root@localshost ~]# cat users
root pts/0 2021-01-03 20:24 (223.166.20.53)
Hello world
[root@localshost ~]#
참고:
위의 예에서는 많은 명령줄에 두 개의 #이 표시됩니다.
첫 번째 #은 다음을 의미합니다. 현재 사용자가 루트 사용자입니다( 다른 사용자의 경우 $ 기호가 표시됩니다);
참고:
출력 리디렉션은 기호(>)보다 큽니다. 입력 리디렉션은 미만 기호(672113f510bdfb6a1d23fc62a2e7bf1f file은 stdout을 파일로 리디렉션하고, < file 명령은 stdin을 파일로 리디렉션합니다.
2. 명령 세부 정보
command 2>file
#stderr 重定向到 file
command 2>>file
#stderr 追加到 file 文件末尾
command > file 2>&1
command >> file 2>&1
#stdout 和 stderr 合并后重定向到 file
command < file1 >file2
#对 stdin 和 stdout 都重定向
#command 命令将 stdin 重定向到 file1,将 stdout 重定向到 file2
5. Here Document
Here Document는 입력을 대화형 Shell 스크립트 또는 프로그램으로 리디렉션하는 데 사용되는 Shell의 특수 리디렉션 방법입니다. 1. Grammar
기본 형식은 다음과 같습니다.
command << delimiter
document
delimiter
#作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。
참고:
끝의 구분 기호는 맨 앞에 문자가 올 수 없으며, 뒤에도 문자가 올 수 없습니다. 공백과 탭 들여쓰기를 포함한 뒷면.
초기 구분 기호 앞뒤의 공백은 무시됩니다.
2. 예시 분석EOF는 END Of File의 약자로 커스텀 종결자를 의미합니다. EOF는 사용자 정의가 가능하므로 고정된 값이 없으며 임의로 별칭을 설정할 수 있습니다. 예를 들어 Linux에서는 Ctrl-D를 대신 EOF로 사용할 수 있습니다.
EOF는 일반적으로 cat과 함께 작동하여 여러 줄의 텍스트를 출력합니다.
예제는 다음과 같습니다. [root@localhost ~]# wc -l << EOF
> a
> b
> c
> d
> e
> EOF
5 #输入内容为5行
[root@localhost ~]# cat << EOF
> a
> b
> c
> d
> e
> f
> EOF
a
b
c
d
e
f
EOF는 다음과 같이 사용자 정의할 수도 있습니다.
[root@iZ2ze95cxr3kx9il409khtZ ~]# cat << CCC
> a
> b
> c
> d
> CCC
a
b
c
d
스크립트 입력을 실행할 때 다음 형식을 사용할 수 있습니다.
#拥有大量输入的时候可以用下面的形式,将标准输入的内容重定向到(输入到)test.sh文件中。
[root@localhost ~]# cat << EOF >test.sh
> 123123123
> 3452354345
> asdfasdfs
> EOF
[root@localhost ~]# cat test.sh
123123123
3452354345
asdfasdfs
[root@localhost ~]#