在shell脚本中,可以用几种不同的方式输入输出数据,可以使用标准输入--缺省为键盘,或者指定一个文件作为输入,对输出也一样,默认标准输出是终端屏幕,也可以指定文件作为输出。
1.常用输入输出命令
echo
使用echo命令可以显示文本或变量,或者把字符串输入到文件。
echo string
echo string >myfile
read
read一般是从键盘或文件的某一行读入信息,将其赋给一个变量,遇到文件结束符或回车结束。
read v1 v2
shell用空格作为变量之间的分隔符,如果输入文本域过长,shell将所有超长部分富裕最后一个变量。
cat
cat是一个很常用的命令,可以显示文件内容,创建文件,还可以显示控制字符。它会一下显示整个文件。
cat [ op] f1 f2...
如果希望创建一个新文件,并向其中输入一些内容,只需用cat命令把标准输出重定向到该文件中,输入完后按ctrl + d结束。
cat > myfile
可以显示控制字符
cat -v myfile
管道
可以用过管道把一个命令的输出传递给另一个命令作为输入。管道用|表示。
一般形式 command1 | command2
2标准输入、输出和错误
文 件 文件描述符 缺省
输入文件—标准输入 0 键盘
输出文件—标准输出 1 屏幕
错误输出文件—标准错误 2 屏幕
系统中实际上有12个文件描述符,可以随意使用3--9的描述符。
文件重定向
执行命令式可以指定命令的标准输入、输出和错误,需要使用文件重定向。
exec
exec命令可以用来替代当前shell,使用exec时任何现有环境会被清除,并重新启动一个shell。
exec command
可以使用e x e c命令通过文件描述符打开和关闭文件。在下面的例子中,我选用了文件描
述符4,实际上我可以在4到9之间任意选择一个数字。下面的脚本只是从s t o c k . t x t文件中读了
两行,然后把这两行回显出来。
该脚本的第一行把文件描述符4指定为标准输入,然后打开s t o c k . t x t文件。接下来两行的
作用是读入了两行文本。接着,作为标准输入的文件描述符4被关闭。最后,l i n e 1和l i n e 2两个
变量所含有的内容被回显到屏幕上。