Chinaunix首页 | 论坛 | 博客
  • 博客访问: 880289
  • 博文数量: 254
  • 博客积分: 5350
  • 博客等级: 大校
  • 技术积分: 2045
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-27 13:27
文章分类

全部博文(254)

文章存档

2015年(1)

2014年(9)

2013年(17)

2012年(30)

2011年(150)

2010年(17)

2009年(28)

2008年(2)

分类: LINUX

2009-10-30 20:31:01

                   Shell的输入与输出
一。echo
1.echo命令可以显示文本行或变量,或者把字符串输入到文件
2.echo[options]string
-e解析转义字符
-n回车不换行,Linux系统默认回车换行
转义符(\c \f \t \n)
3.#!/bin/bash
#echod
echo -e"this echo's 3 new lines\n\n\n"
echo "OK"
echo
echo "this echo's 3 new lines\n\n\n"
echo "the log files have all been done">mylogfile.txt
 
二。read
1.read语句可以从键盘或文件的某一行文本中读入信息,并将其赋给一个变量
2.read variable1  variable2...
如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车;如果给出了多个变量,他们按顺序分别被赋予不同的变量,Shell将用空格作为变量间的分隔
3.#!/bin/bash
#readname
echo -n "first name:"
read firstname
echo -n "last name:"
read lastname subname
echo -e "your first name is:$firstname\n"
echo -e"your last name is:${lastname}\n"
echo -e"your subname is:${subname}\n"
 
三。Cat
1.Cat可以用来显示文件内容、创建文件、还可以用来显示控制字符
2.cat[options]filename1...filename2..
-v显示控制字符
使用Cat命令时要注意,它不会在文件分页符处停下来,它会一下显示完整个文件。如果希望每次显示一页,可以使用more命令或把Cat命令的输出通过管道传递到另外一个具有分页功能的命令(more,less)中。
3.man cat
4.cat myfile
  cat myfile1 myfile2 myfile3
  cat myfile1 myfile2 myfile3>myfile123
  cat -v dos.txt
  cat ls.txt|more
  less ls.txt
 
四。管道
1.可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用|表示
2.格式:命令1|命令2
3.cat myfile|more
  ls -l|grep "myfile"
  df -k|awk `{print $1}`|grep-v "Filesystem"
 
五。tee
1.tee命令把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中
2.tee -a files
如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了
一般用于管道之后
-a追加到文件原内容的尾部,如没有此选项则覆盖原内容
3.who|tee -a who.out
  df-k|awk `{print $1}`|grep -v "filesystem"|tee partatition.txt
 
六。标准输入、输出和错误
1.在Shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,Shell同时也给出了相应的文件名
2.
输入文件--标准输入   0(缺省为屏幕,也可以为文件)
输出文件--标准输出   1(缺省是键盘,可以是文件或其他命令的输出)
错误输出文件--标准错误 2(缺省是屏幕,也可以是文件)
3.系统中实际上有12个文件描述符,可以任意使用文件描述符3到9
 
七。文件重定向
1.改变程序运行的输入来源和输出地点
command>filename把标准输出重定向到一个新文件
command>>filename把标准输出重定向到一个文件中(追加)
command 1>filename把标准输出重定向到一个文件中
command>filename 2>&1把标准输出和标准错误一起重定向到一个文件中
command 2>filename把标准错误重定向到一个文件中
command2>>filename把标准错误重定向到一个文件中(追加)
command>>filename 2>&1把标准错误和标准输出一起重定向到一个文件中(追加)
commandfilename2 command命令从filename文件作为标准输入,以filename2文件作为标准输出
command
command<
command<&m把文件描述符m作为标准输入
command>&m把标准重定向到文件描述符m中
command<&-关闭标准输入
2.重定向标准输出
cat file|sort 1>sort.out
cat file|sort>sort.out
pwd>>path.out
>nullfile.txt创建一个字节为0的文件
 
重定向标准输入
sort
sortname.out
 
分隔符
cat >>term.txt<
>...
>...
>AA 
 
重定向标准错误
grep "trident" missiles
grep "trident" missiles 2>err_message.txt
 
八。结合使用标准输出和标准错误
1.cat account_new.txt account_old.txt |>accounts.out 2>accounts.err
2.合并标准输出和标准错误的时候,切记shell是从左至右分析相应的命令。
grep "standard" standard.txt >grep.out 2>&1
 
九。exec
1.exec命令可以用来替代当前shell;换句话说,并没有启动子shell,使用这一命令时任何现有环境变量都将会被清除,并重新启动一个shell。
2.exec command
其中的command通常是一个shell脚本
3.对文件描述符进行操作的时候(也只有在这时)他不会覆盖你当前的shell
exec helloworld.sh   将重启一个新的shell
 
十。文件描述符
1.3-9文件描述符可为我们使用
2.exec与文件描述符的结合
#!/bin/bash
#file_desc
exec 3<&0 0
read line1
read line2
exec 0<&3  关闭3描述符
echo $line1
echo $line2
阅读(1080) | 评论(0) | 转发(0) |
0

上一篇:linux 控制用戶登錄系統

下一篇:sed 實例

给主人留下些什么吧!~~