Bash:读书笔记(三)

36. 资料流重导向

标准输入(stdin) 代码:0, 使用< 或者<<

标准输出(stdout)  代码:1, 使用 > 或者 >>

标准错误输出(stderr) 代码:2,使用 2> 或者 2>>

-------------------------------------------------------------------

1> 把正确的资料以覆盖的方式输出到指定的档案或装置上

1>> 把正确的资料以累加的方式输出到指定的档案或装置上

2> 把错误的资料...

2>> 把错误的资料以累加的方式输出到指定的档案或装置上

注释:1是默认省略的。2>中间没有空格。1和2可以同时使用。

例子: find /home -name .bashrc > list_right 2> list_error

 

37. /dev/null 垃圾桶黑洞装置

find / -name .bashrc 2> /dev/null

38. 将正确的和错误的资料全部写入同一个文件中, 2>&1, &>

使用 2>&1 或者 &> (一般使用前者)

例如: find /home -name .bashrc > list 2>&1    

           find /home  -name .bashrc &> list

39. 利用cat建立一个文件: cat > filename, 用ctl+D结束。

touch也可以,但是cat filename之后,会要求输入文件的内容。而touch不用,之后需要用vim进入文件修改。

40 << 结束的输入字元

cat > catfile <<"eof"

41. < 之后的文件如果不存在,则就会提示错误信息。

 

42. (指令回传值)与 && 或 ||

指令回传值就是 $?。如果一道命令正确执行完毕,就会回传一个 $?=0的值。依据这个值来判断 || 之后的命令是否需要执行。

同时使用:

ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/hehe

 

他们是平行的关系。流程图如下:

43. 两种比较表达式的比较。

`which command`
if [ $? == 0 ]; then
    echo "OK"
fi

if [ `which command` = "" ]; then
    echo "OK"
fi

 

 这里有两种涵盖了命令指令``的比较表达式。第一种,执行的命令会有stdout 和 stderrr 的输出值。而在第二种中,命令表达式的输出值不会显示出来,即便是错误输出值。

 

44. 管道 | 和管道命令

1. 管道后面必须要跟命令,而且能够接收 stdout 的资料。 例如:less, more, head, tail。 ls cp mv 不能作为管道命令。

 

 

 

 

 

posted @ 2012-04-12 00:10  CCJPP  阅读(153)  评论(0)    收藏  举报