#输入输出重定向:Unix默认从stdin获取输入,stdout输出,输入设备是键盘,输出设备是终端
#输出重定向:明朗的输出不仅可以是显示器,还可以转移到文件,这被叫做输出重定向
#输出重定向会覆盖文件内容
#输出重定向语法: command > file
1 echo who > users #在当前目录创建一个users文件,并写入获取的当前用户名#
#输入重定向语法: command < file
#重定向深入讲解
#一般情况Unix/Linux命令运行时都会打开三个文件
#标准输入文件stdin:文件描述符为0,Unix默认从stdin读取数据
#标准输出文件stdout:文件描述符为1,Unix默认从stdout输出数据
#标准错误文件stderr:文件描述符为2,Unix会向stderr流中写入错误信息
#默认情况下,command > file将stdout重定向到file,command < file将stdin重定向到file
#如果希望stderr重定向到file :command 2 > file
#如果希望stderr追加到file末尾 : command 2 >> file
#如果希望stdout和stderr合并后重定向到file : command > file 2>&1 or command > file 2>&1
#如果希望stdin和stdout都重定向 :command < file1 > file2
#command命令将stdin重定向到file1,stdout重定向到file2
#查看全部可用的重定向命令列表获取更多 ~/桌面/Blog/Shell#
#Here Document:shell中一种特殊的重定向方式:形式如下:
#command << delimiter
# document
#delimiter
#它的作用是将两个delimiter之间的内容document作为输入传递给command
#注意:结尾的delimiter一定要顶格写
#开始的delimiter前后的空格会被忽略掉:例如:
1 cat << EOF 2 This 3 is 4 a test 5 EOF
#计算行数例子如下: 终端输入 : 结果 : 3
1 wc -l << EOF 2 This 3 is 4 a test 5 EOF
#将document保存到当前目录的test.txt文件
1 cat << EOF > test.txt 2 This file was created automatically from 3 a shell script 4 EOF
#/dev/null:如果希望执行某个命令,但又不希望在终端输出结果,那么可以将输出重定向到 /dec/null
# command > /dev/null
#这是一个特殊的文件,写入其内容会被丢弃,同样读取不到内容。
#但它非常有用,将命令输出重定向到它,起到 禁止输出 的效果
#如果希望屏蔽stdout和stderr : command > /dev/null 2>&1
#像其他语言一样,Shell可以包含外部脚本
#包含脚本可以使用:. filename or source filename
#创建一个被调用脚本subscript.sh : url="www.baidu.com"
#创建主文件main.sh
1 . ./subscript.sh 2 echo ${url}
#赋予main +x 权限并执行,会输出 www.baidu.com
#被包含脚本不需要执行权限