SHELL第05章 shell输入与输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如:
# echo -e“What is your name:\c”//行尾不换行
# echo–n“What is your name:”//行尾不换行
echo -e“What is your name:\c”&& read name //等待读入变量name的值。
echo -e“What \t what”
格式:printf -v变量名“格式”要显示的内容
实例1
说明:将字符串存入变量var1中。
格式字符串常用的有以下几种:
1、%s字符串
2、%c单个字符
3、%d整数
4、%i和%d相同
5、%f浮点数
6、%o显示八进制数
7、%x显示无符号十六进制数,用a-f表示十六进制
8、%X显示无符号十六进制数,用A-F表示十六进制
>a
>b
>c
EOF
管道|:将输出重定向到一个命令中,而不是重定向到一个文件中。
lsof命令:可显示系统当前开放的每个文件的相关信息,包括所有后台运行的进程。以及所有登录到系统的用户帐户。
参数:
-p进程id:查看某个指定的进程id号的相关信息
-d文件描述符:查看指定的文件描述符相关信息。
-a表示后面带有多
在下面例子中,while的循环次数其实是由cat命令控制的,cat命令的实现原理也是一行一行地读取文件内容,读一行计数器加1,直到读完为止。
三、cat命令:
-v:显示控制字符
-n:显示行号
-A:显示所有字符,含特殊字符
cat >文件名:从键盘输入内容存入文件,按Ctrl+d结束。
四、tee命令
将显示在屏幕上的内容存入一个文件。相当于重定向功能。也可将其当成一个简单的文本处理器,将键盘输入的内容存入文件。相当于cat >文件名。
一、echo命令
echo命令一般不需用引号来标记字符串。如果字符串中有空格,引号等特殊字符,可以用引号将其括起来。否则输出结果会出问题。
如下例:必须用引号前其引起。
-n不要在最后自动换行
-e解析输出内容中的转义符。转义符常用的用
\a:发出警告声
\c:最后不加上换行符号
\t:tab键
\f:换行
\r:回车
grep“dkeikdk”a.txt 2>/dev/null
结合使用
grep“dkekek”a.txt 1>a.txt 2>a.txt
grep“dkekek”a.txt >a.txt 2&1
内置输入重定向“<<”:将从键盘中输入的内容交给命令来处理。须有一个固定字符作为结束标志。
如:cat << EOF //EOF是结束标志。
可用“-s”选项使输入的字符不显示。实际上是显示的,只是将字符的颜色设成与背景色一致。
示例1
格式六:利用read读取文件的一行内容
可以使用下面的read命令来读取文件中的第一行内容。并将内容存入变量中去。
# read line < /etc/passwd
如果需要循环读取整个文件的内容,必须要与cat及while命令结合使用。下面的例子不断读取文件中的每一行内容,并将内容存入变量中去。直到读完为止。
标准输出文件的文件描述符:1缺省是屏幕,也可以是文件。
错误输出文件的文件描述符:2缺省是屏幕,也可以是文件。
在shell中执行命令时,每个进程都和上述的三个打开的文件相联系。
系统中共有12个文件描述符。
六、重定向
重定向标准输入:
sort < a.txt
重定向标准输出:
ls > a.txt
重定向标准错误:
格式二:取代echo 命令的用法:
read -p“提示信息”变量名//先显示提示信息,然后将键百度文库输入内容赋给变量。
格式三:限定时间
read -p秒数"提示信息"变量名//在限定时间内等待输入,过时返加一个非0状态值。
格式四:限定输入的字数
采用“-n字符数”来对输入的字符数进行限制。
示例1:
格式五:隐藏输入的字符。用于密码的输入。
使输出的内容变色:前景色就是指字符的颜色。
显示颜色的格式为:
echo–e“\033[背景色;前景色m要显示的文本”
也就是说:“\033[”是颜色的定界符。
如:
echo -e“\033[44;31mTest color:”//改成蓝色背景,红色文字。
更改后会发现,以后的工作环境都变成了这种颜色。更改后能及时恢复成原来的黑底白字,可以在最后加上“\033[0m”或加上“\033[40;37”
三、read命令
从键盘或文件中读入信息,将其赋给变量(一个或多个),直到遇到回车符或文件结束符为止。
格式一:read变量1变量2变量3……//变量间用空格隔开。
如:
1、# read name
Hello I am superman //将整个字符串赋给变量。因为只指定了一个变量。
# echo $name
//量数少于单词数,因此后两个单词被赋给了surname变量。
# echo $name
John
# echo $surname
Lemon Doe
4、# read STR < install.log //将install.log文件的第一行赋给变量STR
5、# read STR1 STR2 < install.log //以空格为分隔符,读取install.log文件,分别赋值给两个变量。
如:
echo -e“\033[44;31mTest color:\033[0m”
echo -e“\033[44;31mTest color:\033[40;37”
二、printf命令
按照格式显示参数内容。
使用格式:
printf“格式”要显示的内容//格式字符串和C语言的类似
-v参数:不显示到标准输出,只将显示内容存入变量中。
实例1
实例2
说明:在引用变量时,最好用双引号将变量括起来。
实例3
说明:输出变量str的单个字符。
实例4
说明:expr length“字符串”可返回字符串的长度
实例5
分别返回整数和浮点数
实例6
说明:每个字串占5个字符长度,右对齐。
实例7
说明:每个字串占5个字符长度,左对齐。
实例8
加上小数点共5个字符,其中小数点后占1位
格式字符串的占位规定
%5s占5个字符,右对齐,不足部分补以空格。
%-5s占5个字符,左对齐,不足部分补以空格。
%5.1f加上小数点共5个字符,其中小数点后占1位
常用的转义字符:
1、\n换行
2、\r回行首
3、\t水平tab键
4、\v垂直tab键
5、\’单引号
6、\\单斜线\
7、\b退一格
8、\f跳页
9、\0后接8进制数,显示对应的ASCII字符
Hello I am superman
2、# read name surname
John Doe //给定了两个变量,且输入了两个字符串,将它们分别赋给了两个不同的变量。
# echo $name
John
# echo $surname
Doe
3、# read name surname
John Lemon Doe //给定了两个变量,输入了三个字符串,第一个单词赋给第一个变量,由于变
与单纯的重定向“>文件名”不同的是,内容既会在屏幕上显示出来,又会存入到文件中。
-a:追加到文件尾
1、who | tee who.out //存入who.out文件。相当于who >who.out
2、echo“abcdefg”| tee -a string.txt //追加到文件尾
五、文件描述符。
标准输入文件的文件描述符:0缺省是键盘,也可以是文件,或是命令的输出。
相关文档
最新文档