shell输入与输出
来源:互联网 发布:windows api开发详解 编辑:程序博客网 时间:2024/05/18 03:31
简要:
echo、read、cat、管道(|)、tee、exec
文件重定向,标准输入、输出和错误,合并标准输出和标准错误,使用文件描述符
3.1echo
echo命令可以显示文本行或变量或者把字符串输入到文件
echo [option] string
-e解析转义字符
-n回车不换行,Linux系统默认回车换行
转义字符(\c,\f,\t,\n)
例子:
#!/bin/bash#echodecho -e "This echo's 3 new lines\n\n\n"echo "OK"echoecho "This echo's 3 new lines\n\n\n"echo "The log files have all been done">mylogfile.txt
3.2read
read语句可以从键盘或文件的某一行文本中读入信息,并将其赋给一个变量
read variable1variable2 。。。
-如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直到遇到第一个文件结束符或回车;如果给出了多个变量,他们按顺序分别被赋予不同的变量。shell将用空格作为变量之间的分隔符。
例子:
#!/bin/bash#readnameecho -n "First name:"read firstnameecho -n "Last name:"read lastnameecho -e "Your first name is :${firstname}\n"echo -e "Your last name is :${lastname}\n"
#!/bin/bash#readnameecho -n "First name:"read firstnameecho -n "Last name:"read lastname subnameecho -e "Your first name is :${firstname}\n"echo -e "Your last name is :${lastname}\n"echo -e "Your subname is :${subname}\n"
3.3cat
cat是一个简单而通用的命令,可以用它来显示文件内容、创建文件,还可以用它来显示控制字符。
cat [option]filename1 ... filename2 ...
- -v显示控制字符
-使用cat命令时注意,它不会再文件分页处停下来;他会一下显示完整个文件。如果希望每次显示一页,可以使用more命令或吧cat命令的输出通过管道传递到另一个具有分页功能的命令(more,less)中。
-man cat
例子:
cat myfilecat myfile1 myfile2 myfile3cat myfile1 myfile2 myfile3 >myfilecat -v dos.txt
3.4管道(|)
管道就是把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示。
格式:命令1|命令2
cat myfile |morels -l |grep "myfile"df -k |awk '{print $1}' |grep -v "Filesystem"
3.5tee
tee命令吧输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。
tee -a files
-如果希望看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。
-一般用于管道之后
例子:
who|tee -a who.outdf -k|awk '{print $1}' |grep -v "Filesystem" |tee partation.txt
36.标准输入、输出和错误
在shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。
文件 文件描述符
输入文件-标准输入 0(缺省是屏幕,也可以是文件)
输出文件-标准输出 1(缺省是键盘,也可以说是文件或其他命令的输出)
错误输出文件-标准错误 2(缺省是屏幕,也可以是文件)
系统中实际上有12个文件描述符,可以任意使用文件描述符3到9
3.7文件重定向
改变程序运行的输入来源和输出地点
command >filename 吧标准输出从定向到一个新文件中
command >>filename 吧标准输出重定向到一个文件中(追加)
command 1> filename 吧标准输出从定向到一个新文件中
command> filename 2>&1 吧标准输出和标准错误一起重定向到一个文件中
command 2>filename 吧标注吗错误重定向到一个文件中
command 2 >> filename 吧标准输出重定向到一个文件中(追加)
command>>filename 2>&1 吧标准输出和标准错误一起从定向到一个文件中(追加)
command< filename > filename2 command命令以filename文件作为标准输入,以filename2文件作为标准输出
command<filename command命令以filename文件作为标准输入
command << delimiter 从标准输入中读入,直至遇到的厘米特然分界符
command <&m 吧文件描述符m作为标准输入
command>&m 吧标准输出重定向到文件描述符m中
command<& 关闭标准输入
例子:
cat file |sort 1>sort.outcat file |sort >sort.outpwd >> path.out>nullfile.txtsort<filesort<name.txt>name.out
重定向标准错误
合并标准输出和标准输入
合并标准输出和标准输入的时候,切记shell是从左至右分析相应的命令
grep "standard" standard.txt >grep.out 2>&13.9exec
exec命令可以用来替代当前shell;换句话说,并没有启动子shell,使用这一命令时任何现有环境都将会被清除,并重新启动一个shell
exec command
其中的command通常是一个shell脚本
对文件描述符进行操作的时候(也只有在这时)。它不会覆盖你当前的shell
3.10文件描述符
3-9文件描述符
exec与文件描述符的结合
#!/bin/bash#file_descexec 3<&0 0<name.txtread line1read line2exec 0<&3echo $line1echo $line2
- shell 输入与输出
- shell 输入与输出
- shell 输入与输出
- shell输入与输出
- shell 输入与输出
- shell输入与输出
- shell的输入与输出
- shell 标准输入与输出
- LINUX-Shell输入与输出
- shell的输入与输出
- shell中的输入与输出
- 标准输入与输出(Shell命令)
- Linux Shell输入与输出笔记
- 十六、shell中的输入与输出
- Linux Shell笔记之输入与输出
- Linux Shell中的输入与输出
- shell输入与输出-------shell学习(4)
- linux shell编程指南第五章------shell输入与输出
- 高性能Socket服务器编程-02
- java 可设置最大内存
- 【算法】奇偶调序
- How To: Design a Hull Shader
- GC与Finalize()
- shell输入与输出
- 多线程编程
- HTML标签,闭合还是不闭合?
- Android定位详解(自定义自己想要的定位信息)
- Direct3D 11的流水线
- 移植WP的总结
- PHP mb_convert_encoding 问题记录
- github 报错 权限问题fatal: Authentication failed
- Android Volley完全解析(一),初识Volley的基本用法