输出重定向 : > >>
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