shell输入与输出:

 read :

  read语句可以从键盘或者文件的某一行文本中读入信息,并将其赋值给一个变量。 

  read  var1  var2  ...    若只指定了一个变量,那么read将会把所有的输入赋值给该变量,直至遇上第一个文件结束符或者回车。 如果给了多个变量,它们按照顺序分别赋予不同的变量。shell将用空格作为变量之间的分隔符。

 

read示例如下,同时展示了回车不换行:

光标停留在了First name之后,这叫回车不换行。不加-n的话,光标会跑到下一行。

 

cat:

cat  filename | more,可以一屏一屏的翻页。

tee示例:

 

 

who命令查看谁登录到服务器上了,如下所示:

 

 

标准输入、标准输出、标准错误:

文件重定向是改变文件运行的输入来源和输出地点:

 2>&1表示标准错误要和标准输出重定向到一个地方。标准输出一般是先重定向到一个文件,如上图中的示例所示。

 

标准输出重定向:

标准输入重定向:

 标准错误重定向:

 

 

exec拉起一个脚本,当前用户会退出,实验中,命令行窗口直接关闭了。当exec不和文件描述符在一起时,会关闭当前shell。

exec只有对文件描述符进行操作时,也仅有这样时,它不会覆盖当前的shell。

示例如下:

 1 #!/bin/bash
 2 
 3 exec 3<&0 0<file1.txt
 4 
 5 read line1
 6 read line2
 7 
 8 exec 0<&3
 9 
10 echo $line1
11 echo $line2

第三行中,将0号文件描述符缓存到3号中,将0号重定向到file1.txt文件。第8行中将文件描述符3恢复到0号文件描述符。

执行结果如下:file1.txt中的第一行为aaa bbb,没有第二行,所以line2为空,aaa bbb都赋值给了line1。

 

posted on 2018-07-28 14:51  周伯通789  阅读(149)  评论(0编辑  收藏  举报