linux cat输入重定向,shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)

在LINUX中,要使转义符生效,需加参数-e

从echo的变量开始说起

如:e c h o命令输出转义符以及变量。

# echo -e "\007your home is $HOME , you are connected on `tty`"

your home is /root , you are connected on /dev/pts/1

# echo -e "\ayour home is $HOME , you are connected on `tty`"

your home is /root , you are connected on /dev/pts/1

#

复制代码

本例中

\007或\a你可以让终端铃响一声

显示出$ H O M E目录,

并且可以让系统执行t t y命令(注意,该命令用键盘左上角的符号,法语中的抑音符引起来,不是单引号 )。

在e c h o命令输出之后附加换行,可以使用\ n选项:

$ cat echod

#!/bin/sh

echo -e "this echo's 3 new lines\n\n\n"

echo "OK"

复制代码

编辑一个新echod,如上内容,然后运行输出如下:

$ ./echod

this echo's 3 new lines

OK

$

复制代码

在e c h o语句中使用跳格符,记住别忘了加反斜杠\:

$ echo -e "here is a tab\there are two tabs\t\tok"

here is a tab   here are two tabs               ok

$

复制代码

引号是一个特殊字符,所以必须要使用反斜杠\来使s h e l l忽略它的特殊含义。

假设你希望使用e c h o命令输出这样的字符串:“/ d e v / r m t 0”,那么我们只要在引号前面加上反斜杠\即可:

$ echo "\"/dev/rmt0"\"

"/dev/rmt0"

$

复制代码

read参数了解:

read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]

read deven

echo $deven

read -p "how old r u? " age

echo $age

read -p "some words? " -a words

echo ${words[*]}

read -p "Password: " -s passwd

echo $passwd

read -t 5 auth

echo $auth

read -n 1 key

read -dq -p "input something end with q: " menu

read -e file #在这试试命令历史和补齐功能

[sam@chenwy sam]$ read name

sam

[sam@chenwy sam]$ echo $name

sam

[sam@chenwy sam]$ read name surname

sam ch

[sam@chenwy sam]$ echo $name surname

sam surname

[sam@chenwy sam]$ read name surname

sam ch yiir

[sam@chenwy sam]$ echo $name

sam

[sam@chenwy sam]$ echo $surname

ch yiir

cat参数了解:

使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName

说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)

参数:

-n 或 --number 由 1 开始对所有输出的行数编号

-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号

-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

-v 或 --show-nonprinting

tee参数了解:

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

语   法:tee [-ai][--help][--version][文件…]

补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。我们可利用tee把管道导入的数据存成文件,甚至一次保存数份文件。

参   数:-a 附加到既有文件的面,而非覆盖它。如果给予tee指令的文件名称已经存在,预设会覆盖该文件的内容。加上此参数,数据会新增在该文件内容的最面,而不会删除原先之内容。

-i 忽略中断信号

--help 在线帮助

--version 显示版本信息

例一:

列出文本文件slayers.story的内容,同时复制3份副本,文件名称分别为ss-copy1、ss-copy2、ss-copy3:

cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值