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 不能作为管道命令。

浙公网安备 33010602011771号