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。