Bash札记(二)

一、I/O File
1、read指定分割
while IFS=: read user pass uid gid fullname homedir shell
do
//process each line
done < /etc/passwd

2、使用here document,作为读入内容:
#!/bin/bash
cat <<EOF
hello
this is a here
document
EOF

我们可以使用here document存放一些ed命令然后执行,比如
原来文档:
引用

That is line 1
That is line 2
That is line 3
That is line 4

我们使用一下脚本:
#!/bin/sh
ed a_text_file <<EOF
3
d
.,\$s/is/was/
w
q
EOF

结果变成:
引用

That is line 1
That is line 2
That was line 4

3、标准输入、输出、错误输出重定向:
make 1> result 2> error

将make执行的标准输出重定向到result,错误重定向到error文件
如果我们想抛弃掉错误:
make 1> result 2> /dev/null

1>显示的指定1是没有必要的,这是>重定向默认将标准输出进行重定向。
如果我们想把标准输出和标准错误信息都重定向到相同的文件我们可以使用:
make > results 2>&1

这个命令的含义是:>results将标准输入重定向到results,接下来的重定向2>&1
分成两部分 2>将标准错误重定向,&1代表1的描述符被重定向的位置。
4、使用exec改变shell的I/O设置:
exec 2> /temp/err.log 重定向shell的标准错误到err.log文件中
exec 3> /file 打开新的文件描述符3
read name rank serno <&3 读/file文件
保存原来和恢复:
exec 5> &2 #保存标准错误到fd 5
exec 2> /tmp/err.log #重定向标准错误到err.log
#....做一些操作
exec 2>&5 #利用保存的标准错误恢复
exec 5>&- #关闭fd 5

你可能感兴趣的:(bash)