shell脚本之重定向与管道(三)

I/O重定向:

通过与终端交互,或是在Shell脚本里设置,重新安排从哪里输入或输出到哪里。

1.以 < 改变标准输入

2.以 > 改变标准输出

>重定向符(redirector)在目的文件不存在时,会新建一个。如目的文件已存在,覆盖;原本的数据都会丢失;

3.以 >> 附加到文件

>>目的文件不存在时,新建;存在,不覆盖,将程序所产生的数据附加到文件结尾处。

4.以 | 建立管道

program1 | program2可将program1的标准输出修改为program2的标准输入。

虽然 < 与 > 可将输入与输出连接到文件,不过管道(pipeline)可把两个以上执行中的程序衔接在一起。管道可以使得执行速度比使用临时文件的程序快上十倍。

特殊文件:/dev/null与/dev/tty

/dev/null:位桶(bit bucket)

传送到此文件的数据都会被系统丢掉;即:当程序将数据写到此文件时,会认为它已成功写入数据的操作,实际上什么事都没做。

如需要的是命令的推出状态,而非它的输出,可用此功能。

读取/dev/null的操作很少会出现在Shell程序里。

/dev/tty


stty(set tty)命令用来控制终端(或窗口)的各种设置。-echo选项用来关闭自动打印每个输入字符的功能;stty echo用来恢复该功能。

例:

printf "Enter new password:" 提示输入

stty -echo 关闭自动打印输入字符的功能

read pass < /dev/tty 读取密码

printf "Enter again:" 提示再输入一次

read pass2 < /dev/tty 再读取一次以确认

stty echo 别忘了打开自动打印打印输入字符的功能

...


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值