今天学了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