分类: LINUX
2012-11-13 17:26:31
转载自http://blog.csdn.net/z237654601/article/details/6336951
数据重定向shell基础(2)2011-04-20
在linux中有对数据的重定向的操作有:标准输入、标准输出、错误输出。
| 代码表示 | 字符表示 |
标注输入 | 0 | <(覆盖输入)或<<(追加输入) |
标准输出 | 1 | >或>>(同上) |
错误输出 | 2 | 2>或2>>(同上) |
输出重定向使用示例:
1 eg: ls –l /etc > /home/redhat/etc.dir 意为:以ls –l 方式列出/etc 下的内容,然后覆盖输出到/home/redhat/etc.dir中,如果把>改为>>就表示追加输入到/etc/redhat/etc.dir中。如果为了防止追加输出地内容覆盖掉原来的文件可以用命令 set –C 执行该命令后输出文件如果存在,则会提示:cannot overwrite existing file 用set +C取消上述命令。
2 ls /tec >/tmp/etc.out 2>/tmp/etc.err 意为:列出/tec下的文件,如结果正确输出到/tmp/etc.out中,如果结果错误则输出到/tmp/etc.err中。
3 &> 表示把1 2重定向到一个位置,即:&>=2>&1,但&>后面可以直接加文件,而2>&1后面不能加文件。
在上面表格中,分别用1 2 3代表不同的含义,为了方便,我们也可以定义数字代替一定的含义(数字只能为3-9),但通常只能定义为文件描述符,其方法为: exec N>>/filename 如:exec 3>>/etc/issue。表示用数字3代替/etc/issue 。使用方法:cat /etc/issue>&3。但这样使用的前提是:必须set +C。
在数据重定向时,有时想让输出的内容输入到文件中,同时在屏幕上显示可用命令 tee 使用方法:ls /etc | tee /tmp/etc.out。这里使用到了 | 这是管道命令,在下面介绍。
输入重定向使用:通常在一般操作中很少使用到输入重定向,但在shell编程中可能会用到。1 cat 。2 将多行键盘输入的内容重定向到某一输出中,eg: cat <
管道命令的使用:
管道命令的意义是将前一个命令的输出结果作为后一个命令的出入内容。使用方法 command1 | command2 | command3 | ……。应用示例:echo redhat | passwd –stdin student。表示把student用户的密码改为redhat。
tr命令使用 tr [option] set1 [set2]。 set1与set2的字符应该尽量相同。应用示例:ls /var | tr ‘a-z’ ‘A-Z’意为:列出/var下的文件名字,并把小写转化为大写。
同时执行两个命令的方法为: command1;command2;……。
shell编程基础(2)
我们最常用的bash有以下特点:
1. command history
2. 命令编辑
3. 命令别名
4. 命令扩展 eg:{}、${}、``(反斜杠)
5. 管道
6. 编辑
脚本第一行都为#!/bin/bash说明该脚本使用的bash
shell中的加法
shell中的加法有以下四种:
前提 A=3 B=4
1. let C=$A+$B
2. C=$[$A+$B]
3. $(($A+$B))
4. expr $A+$B。
shell中循环 for、whell、until
for 的使用方法:
for 变量 in 变量取值列表
do
………
done
eg:
let SUM=0
for I in 1 2 3 4
do
let SUM=$I+SUM
done
echo $SUM
shell中表示从1-到100的方法有
1. `seq 1 100`或${seq 1 100}
2. {1..100}
cat /etc/shells查看当前系统可用shell