一、IO设备
IO是指数据的来源端与数据的目的端,分别称为标准输入、标准输出、及标准错误输出。
程序不必关心设备的问题,无论是文件、终端、磁带机等。
在Linux默认情况下,会读取标准输入、写入标准输出,并将错误传递到标准错误输出。默认情况下标准输入、输出、错误都是终端。
通过下面可知:
$ cat
input testing #用户输入
input testing #屏幕输出
second testing #用户输入
second testing #屏幕输出
在登录Linux系统时,默认将终端设为标准输入、输出、错误设备。
二、重定向与管道
重定向:
更改默认的标准输入、输出、错误终端设备。
以"<"来改变默认的输入:program < file ,可将program的标准输入更改为file
以">"来更改默认的输出:cat file ,可将终端的标准输出更改为file
">>"比较特殊,它是追加输出。
例如:cat >> file
会将终端输入追加到file文件的最后,若file不存在,则会自动新建file文件。
管道:
可以将两个以上的正在执行中的程序衔接起来。
例如:tr -d '/r' < file.txt | sort > file2.txt
将file.txt中的换行删除,再进行排序。并将结果作为file2.txt的输入保存文件。
三、访问shell脚本的参数
shell中的参数指的是shell脚本的命令行参数。在shell函数里,它们同时是shell函数的参数。各参数都由整数命名。
当它们的个数超过9个时,使用{}括起来。例如:${10}
例如:写一个简单的Shell,返回类似条件名称的当前连接的终端
$ cat who.sh
# /bin/sh
who -a | grep $1
$chmod x+ who.sh
./who.sh tty
返回终端名tty的连接信息
四、脚本跟踪执行
在写比较复杂的脚本时,跟踪脚本执行过程,会有助于发现脚本错误,提高编写效率。
set -x 表示开启跟踪
set +x 表示停止跟踪