错误重定向
错误重定向指的是将执行命令过程中出现的错误信息(如选项或参数错误等)保存到指定的文件,而不是直接显示在屏幕上。错误重定向使用“2>”时指错误文件的编号(在使用标准输出、标准输入重定向时,实际省略了1、0编号)。
在实际应用中,错误重定向可用来收集程序执行的错误信息,为排错提供依据;对于shell脚本,还可以将无关紧要的错误信息重定向到空文件/dev/null中,以保持脚本输出的简洁。将一些重要的执行程序的错误重定向到某个文件中。
使用“2>”操作符时,会像使用“&>”操作符将正确的和错误两类输出信息保存到同一个文件。
注:&>的另一种写法:2>&1,都是指正确和错误的重定向到同一个文件
1、错误覆盖
[root@server1 ~]# ./first.sh 2> error.txt
2、错误追加
[root@server1 ~]# ./first.sh 2>> error.txt
3、正确错误一起输出
[root@server1 ~]# vim http_install.sh
#!/bin/bash
#自动安装httpd服务器的脚本
cd /usr/src/httpd-2.4.25/
./configure --prefix=/usr/local/httpd --enable-so &> httpd_err_conf.txt
make &> http_err_make.txt
make install &> http_err_makeinstall.txt
[root@server1 ~]# sh http_install.sh
http_install.sh: 第 3 行:cd: /usr/src/httpd-2.4.25/: 没有那个文件或目录
[root@server1 ~]# cat http
httpd_err_conf.txt http_err_make.txt
http_err_makeinstall.txt http_install.sh
[root@server1 ~]# cat httpd_err_conf.txt
http_install.sh:行4: ./configure: 没有那个文件或目录
[root@server1 ~]# cat http_err_make.txt
make: *** 没有指明目标并且找不到 makefile。 停止。
[root@server1 ~]# cat http_err_makeinstall.txt
make: *** 没有规则可以创建目标“install”。 停止。
重定向输入
重定向输入指的是将命令中接收输入的途径由默认的键盘改为指定的文件,而不是等待从键盘输入。重定向输入使用“<”操作符。
##############################从键盘输入的例子#############################
从键盘读入字符输出给name变量
[root@server1 ~]# read name
111
[root@server1 ~]# echo $name
111
[root@server1 ~]# echo name
name
————————————补充—————————————
【read使用的语法】:
read(选项)(参数)
选项:
-p 指定读取值时候的提示符
-t 指定读取值时候等待的时间(秒)
-a array 指定输入一个数组,赋值给array
-n 2 指定输入字符的任意类型的个数为2
不加参数,默认赋值给变量:REPLY