linux 重定向

输出重定向 : > >>

1 echo "11111" > text.log   //将“11111”输入到text.log中(覆盖)
2 echo "11111" >> text2.log //将“11111”输入到text.log中(追加)

输入重定向 : < <<

cat > a.log < b.log //先从文件 b.log 获取输入给cat,然后cat再将内容输入重定向给a.log 

 #!/bin/bash
 user="root"
 password="XXXXXX"
 sql = `mysql -u$user -p$password << EOF
 use mysql;
 select * from user;
 exit;
 EOF`
 echo $sql
//<<EOF 内容 EOF 。
//1、标识符 EOF 成对出现。
//2、标识符EOF可以为其他字符,但不能为保留字。
//3、第一个标识符以 “<<” 开头,第二个标识符顶格写。

 其他

2>/dev/null ://将标准错误输出到"垃圾桶"。
&  ://是一个描述符,如果1或2前不加&,会被当成一个普通文件。
1>2:  //意思是把标准输出重定向到文件2,内容输出到文件2.
1>&2:// 意思是把标准输出重定向到标准错误,&2表示标准错误输出。
2>&1:// 意思是把标准错误输出重定向到标准输出,$1表示标准输出。
&>filename ://意思是把标准输出和标准错误输出都重定向到文件filename中

2017-03-23补充

命令tee:

就是说使用tee我们既可以将输出保存到文件中,又能在输出到屏幕上,

功能说明:读取标准输入的数据,并将其内容输出成文件。

参数:-a 追加而非覆盖;若没有此参数,内容将会覆盖。

   -i 忽略中断信号。使用ctrl+d才能中断,若没有此参数 ctrl+d、ctrl+c 都可以中断输入。  

常见用法:

#!bin/bash
# -a 和 >> 功能类似,同为追加内容
echo "123" > 123.txt  #将123保存到文件123.txt
echo "1234" | tee 123.txt #将1234覆盖到123.txt
echo "12345" | tee -a 123.txt #将12345追加到123.txt

 参考:

http://www.jb51.net/article/64183.htm
http://blog.csdn.net/pi9nc/article/details/18257593
http://blog.csdn.net/rainharder/article/details/53905361

原文地址:https://www.cnblogs.com/natian-ws/p/6594148.html