大多数使用标准输入的命令都指定一个文件作为标准输入
1.echo
#echo "Hello Word"
将输出Hello Word
如果想把Hello Word输出到文件中中 使用重定向符号> 下面命令将HelloWord字符写入myfile文件中
echo "Hello Word" > myfile
2. read
可以使用read语句从键盘或文件的某一行文本中读入信息,并将其赋予给一个变量
下面例子中 只指定了一个变量 它将被赋予直至回车之前的所有内容
#read name
I am Jack
#echo $name
I am Jack
下面例子给出了两个变量 他们分别被赋予name 和 age
#read name age
Jack 23
#echo $name $age
Jack 23
如果输入过长 shell将所有超过的部分赋予最后一个变量
#read name age
Jack 23 how are you
#echo $name
Jack
#echo $age
23 how are you
3.cat
cat是一个简单通用的命令 可以用它显示文件内容 创建文件 显示控制字符
下面命令显示名为myfile文件的内容(也可以用 #more myfile)
# cat myfile
下面命令显示myfile myfile2 youfile三个文件的内容
# cat myfile myfile2 youfile
如果希望创建一个名为file的文件 并包含上面三个文件的内容 可以用下面命令(将cat的输出重定向到一个文件中)
# cat myfile myfile2 youfile > file
如果想创建一个新文件 并向其输入内容 这时cat的标准输入是键盘 输入完毕之后按CTRL+D结束输入
#cat > testfile
this is good
<CTRL+D>
#cat testfile
this is good
5.管道
可以通过管道把一个命令的输出传递给另一个命令作为输入,管带用 | 表示
格式;
命令1 | 命令2
在下面的例子中 在当前目录中执行文件列表操作,如果没有管道,文件就会显示出来 ,当shell看到管道符号后,就会把所有列出的文件交给管道右边的命令,因此管道的含义正如他的名字那样:把信息从一端传递给另一端
下面例子是说,在ls列出的文件中grep命令搜索hello.txt
#ls | grep hello.txt
6. tee
tee命令可以用字母T来表示,它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中(如果希望看到输出的同时将输出的内容存入一个文件 使用此命令在合适不过了)
格式为:tee -a file
下面命令表示 我们用who命令 结束输出到屏幕上 同时使用tee命令将输出的内容保存到who.out文件中
#who | tee who.out
# cat who.out
root :0 2010-05-28 05:41
root pts/1 2010-05-28 05:48 (192.168.1.101)