标准输入:默认为键盘,可以指定为文件。
标准输出:默认为屏幕,可以指定为文件。
*****如果在终端输入时,一行不能结束,可以使用反斜杠 \ 在下一行接着输入。
echo用于将字符串输出
1 使用时如果用双引号字符串,内部的$变量将会被替换,内部的反单引号中的命令会输出``,但是转义字符不会发生转义。
2 使用单引号字符串,$变量不会被替换,返单引号不会执行命令,同样不发生转义字符转义。
3 不使用引号等于使用双引号。
echo有三个控制选项:
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
# 输出后没有换行 echo -n "what‘s your first name: " read first_name # 输出后换行 echo "what‘s your last name: " read last_name # 没有输出tab字符 echo "first name\tlast name" # 输出后有tab字符 echo -e "${first_name}\t${last_name}"
read后跟变量名称,会读取输入流,直到换行或者EOF(可以通过Ctrl+d)。
1. 如果变量有多个,那么每次读入的,将会通过空白字符分割赋值给变量。
2. 如果分割的个数多,最后一个变量获得到之后全部的输入。
用法
read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [-t 超时] [-u 文件描述符] [名称 ...]
用来显示文件内容,控制字符,行号等。
如果没有指定文件,或者文件为"-",则从标准输入读取。
-A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines, overrides -n
-e equivalent to -vE
-E, --show-ends display $ at end of each line
-n, --number number all output lines
-s, --squeeze-blank suppress repeated empty output lines
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
管道可以将一个命令的输出传递给另一个命令作为输入。管道用 | 表示。形式为
命令1 | 命令2
如下命令,将文件中的内容读取到变量中去。
cat text.txt | read var
把标准输入,输出到标准输出。同时,也拷贝到相应的文件中去。
Angel@DESKTOP-254LBLA ~ $ echo abcdefg | tee a.txt abcdefg Angel@DESKTOP-254LBLA ~ $ cat a.txt abcdefg
***** tee有一个-a选项,表示追加到文件。
打开shell时,每个进程有三个打开的文件与之关联,分别是:
标准输入:默认是键盘 文件描述符:1
标准输出:默认是屏幕 文件描述符:2
标准错误:默认是屏幕 文件描述符:3
如果有其他文件需要描述符,可以任意使用3-9的数字。
重定向的方式:
重定向的形式:
command > filename |
把标准输出重定向到一个新文件中 |
command >> filename |
把标准输出重定向到一个文件中 (追加) |
command 1 > fielname |
把标准输出重定向到一个文件中 |
command > filename 2>&1 |
把标准输出和标准错误一起重定向到一个文件中 |
command 2 > filename |
把标准错误重定向到一个文件中 |
command 2 >> filename |
把标准输出重定向到一个文件中 (追加) |
command >> filename 2>&1 |
把标准输出和标准错误一起重定向到一个文件中 (追加) |
command < filename >filename2 |
把command命令以filename文件作为标准输入,以filename 2文件 |
作为标准输出 |
|
command < filename |
把command命令以f i l e n a m e文件作为标准输入 |
command << delimiter |
把从标准输入中读入,直至遇到delimiter分界符 |
command <&m |
把文件描述符 m作为标准输入 |
command >&m |
把标准输出重定向到文件描述符 m中 |
command <&- |
把关闭标准输入 |
exec用于清除当前shell环境,重新启动一个shell,并执行跟随的命令。命令执行完成之后,shell随之关闭。新shell与原shell具有相同的PID。
如果单纯执行shell script文件,并且文件第一行声明了shell路径,则启动子shell执行其中的命令
如果使用source命令执行shell文件,则在当前shell执行文件中的命令。
与后台执行命令相关的有:
原文:http://www.cnblogs.com/qiusuo/p/5587871.html