Linux 输入\输出相关命令 echo read tee

 今天学了Linux中输入\输出的一些有效的命令,有些虽然不是很懂,但先记录下来,待以后慢慢品味


回显命令echo

#echo [option] string

常用选项:

E:禁用转义字符(默认)

e:启用转义字符

n:输出结束后不换行


用法示例:

输出字符串:#echo string

将指定的字符串输出(屏蔽转义字符) E(默认)

#echo "The first line.\nThe second line.\nField1\nField2"



启用转义字符 e   

#echo -e "The first line.\nThe second line.\nField1\nField2"



输出结束后不换行 n

#echo -n "Please enter your name:"



echo命令的n选项通常与读取输入命令read一起使用


###########################################################################


接受用户输入命令read

read命令用于读取字符,读取的字符可以来自标准输入,也可以来自文件。

#read [[option]parameter] name

常用选项

a:将输入的文本按字段放入数组中(默认使用的分隔符是空格或制表符Tab),数组下标从0开始

d:指定结束符,当输入中出现指定的结束符时,read命令将认为输入已经结束(默认使用换行为结束符

e:从标准输入读取时,使用ReadLine库获取输入(此时用户可以使用退格键、方向键进行简单的行编辑操作

n:指定读取的字符数n

p:将该选项指定的字符串输出到标准错误,并读取输入

r:将读取到的字符串按字段放到不同的变量中

s:先锁住屏幕,然后再从标准输入中读取字符(类似密码输入)

t:如果用户在指定的时间内没有输入,就结束读取状态(指定的时间以秒为单位)

u:从指定的文件描述符中读取


用法示例:

提示用户并接收输入

#echo -n "Please enter your name:";read NAME;echo "Hello $NAME"!


$为引用字符


读取多个数据并保存到数组中 a

#echo -n "Please enter your friends's name:";read -a NAME;echo "Your friends:${NAME[*]}"



指定输入结束符  d

#echo -n "Please enter your name:";read -d "$" NAME;echo "Hello $NAME"!

指定$为结束符



使用行编辑功能  e

#echo -n "Please enter your message:";read -e MESS;echo "your message is:$MESS"



指定要接收的字符长度  n

#echo -n "Please enter your phone number:";read -n 11 PHONE;echo -e "\nYour phone number is:"$PHONE

当用户的输入达到限定的长度时,read命令将立即结束接收输入状态




输出标准错误信息 p

编写交互式脚本时,可能需要输出错误信息并询问下一步进行的操作,这是应该使用选项p将错误信息以标准错误的方式输出,以便于用户捕获错误信息并做出判断

#read -p "Unexpected error, press Y key to continue." Flag;echo "Being restored, please wait...."



读取输入并保存到多个变量中 r

将读取到的字符串按字段进行分隔,并保存到多个变量中(默认的字段分隔符为空格、制表符Tab及换行),这个用法与选项a类似

#echo -n "Please enter the four string:";read -r V1 V2 V3 V4;echo -e "first:$V1\nsecond:$V2\nthird:$V3\nfourth:$V4"



可通过设置变量IFS的方法来设置分隔符

建议在使用之前,先用命令Old_IFS=$IFS保存默认分隔符,使用结束后使用命令IFS=$Old_IFS恢复默认的分隔符一定要

#IFS="#";echo -n "Please enter the four variables:";read -r V1 V2 V3 V4;echo -e "first:$V1\nsecond:$V2\nthird:$V3\nfourth:$V4" 




锁住屏幕  s

#echo -n "Please enter your password:";read -s Pass;echo -e "\nYour password is:"$Pass



设置输入超时限制  t

#SE=y;echo -n "Please select yes or no[y|n]:";read -t 8 SE;echo -e "\nInput timeout,Use the default option[y]."

此时不作任何输入,等待8秒





##############################################################


显示并保存文本命令tee

将获取到的数据分为两个拷贝,一个拷贝输出到标准输出,另一个拷贝写入到指定的文件中

#...... | tee [options] filename

常用选项:

a:已追加的形式写入到文件的结尾

i:写入数据时,不写入标准错误


将指定的网络借口信息输出到屏幕的同时也写入文件中:

#ifconfig eth0 | tee eth0_info




以追加的形式将数据写入文件 a

#date | tee -a eth0_info




简单的筛选功能,忽略标准错误   i

#ls -l ab | tee -ia eth0_info





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值