关于shell重定向符的总结

1、符号>和>>

> 将命令的标准输出重定向到文件,如果文件有内容则覆盖

>> 将命令的标准输出重定向到文件,以追加的方式写入文件。

示例1:echo命令的结果重定向到文件。

echo "123" > test.log

示例2:也是echo命令的结果重定向到文件。

for i in `cat 123.log`; do

    echo "修改后:"$i;

done >> test.log

2、符号<

文件内容重定向到命令的标准输入。

注:

(1) 重定向符<具有读取文件的效果。

(2) 命令要是一个需要标准输入的命令,并且这里的“输入”不是指命令的参数。

示例1:

echo < test.log

这里虽然使用<读取了文件内容,但并不能作为echo的参数,打印到标准输出,所以echo的输出还是空。

示例2:

cat < test.log

cat可将标准输入,打印到标准输出,这里就是输出文件内容。同直接使用“cat test.log”是一样的效果。

示例3:

while read row ; do

    echo $row ;

done < test.log

使用<读取了文件内容并作为read的输入(该命令是从命令行读取输入的),使用while循环多次执行read,接收文件中的每一行。

cat test.log | while read row ; do

    echo $row ;

done

使用管道的方式,达到“<”符号读取文件产生数据流的效果。

示例4:

mysql -p'1234567' < test.log

test.log定义了mysql的相关命令:

status;

show databases;

use mysql;

show tables;

对于MySQL客户端这种交互型命令,是需要标准输入的,所以可使用“<”读取文件中写好的指令然后在MySQL客户端中执行。

3、<< (Here Document)

输入的多行文本重定向到命令的标准输入(打开一个标准输入窗口),操作符<<搭配特殊字符(EOF、END等)作为输入的结束。

示例1:

一个常用的经典结构。

cat >> file.txt << EOF

其实这个结构是分为两个部分:

第一,cat可以把标准输入原样输出,搭配重定向符>>将输出写入到文件。

第二,<<操作符可以打开一个标准输入的窗口,并且定义输入的结束信号。

因此,整个过程是由<<操作符定义打开一个标准输入窗口,cat正好可以接收标准输入并输出,使用重定向符>>将输出转向到一个文件,就达到了一个在shell命令行输入内容到文件保存的效果。

示例2:

while read row; do

    echo $row

done << EOF

使用read逐步读取在shell中输入的每一行,存储到变量中并打印。

示例3:

sed "s/abc/ABC/g" << EOF

使用shell输入的内容作为sed要处理的数据流。

4、<<< (Here String)

将一个字符串重定向到命令的标准输入;注意与<<操作符的区别是,一个是多行文本,一个仅仅是字符串。

示例1:

cat >> test.log <<< "Hello World."

5、符号>>>

不存在该操作符。

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值