Skip to content

Commit ec4d46f

Browse files
committed
docs: clean archived files
1 parent 1559e1d commit ec4d46f

7 files changed

Lines changed: 83 additions & 174 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,15 @@ echo "<HTML>
3838
</HTML>"
3939
```
4040

41+
echo '<HTML>
42+
<HEAD>
43+
<TITLE>Page Title</TITLE>
44+
</HEAD>
45+
<BODY>
46+
Page body.
47+
</BODY>
48+
</HTML>'
49+
4150
## read
4251

4352
`read`命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,读取文件中的一行数据。

docs/archives/option.md

Lines changed: 0 additions & 152 deletions
This file was deleted.

docs/archives/references.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/archives/session.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

docs/grammar.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,34 @@
44

55
## echo 命令
66

7-
`echo`命令的作用是输出一行文本,可以将该命令的参数原样输出。
7+
由于后面的例子会大量用到`echo`命令,这里先介绍这个命令。
8+
9+
`echo`命令的作用是在屏幕输出一行文本,可以将该命令的参数原样输出。
810

911
```bash
1012
$ echo hello world
1113
hello world
12-
$
1314
```
1415

16+
上面例子中,`echo`的参数是`hello world`,可以原样输出。
17+
1518
默认情况下,`echo`输出的文本末尾会有一个回车符。
1619

20+
如果引号里面的文本包括换行,`echo`命令也能原样输出。
21+
22+
```bash
23+
$ echo "<HTML>
24+
<HEAD>
25+
<TITLE>Page Title</TITLE>
26+
</HEAD>
27+
<BODY>
28+
Page body.
29+
</BODY>
30+
</HTML>"
31+
```
32+
33+
上面例子中,`echo`可以原样输出多行文本。
34+
1735
(1)`-n`参数
1836

1937
`-n`参数可以取消输出末尾的回车符,使得下一个提示符紧跟在输出内容的后面。

docs/script.md

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,15 @@ fi
346346

347347
## read 命令
348348

349-
有时,脚本需要用户输入参数,这时可以使用`read`命令。它将用户的输入存入一个参数变量,方便后面的代码使用。
349+
有时,脚本需要用户输入参数,这时可以使用`read`命令。它将用户的输入存入一个参数变量,方便后面的代码使用。用户按下回车键,就表示输入结束。
350+
351+
`read`命令的格式如下。
352+
353+
```bash
354+
read [-options] [variable...]
355+
```
356+
357+
上面语法中,`options`是参数选项,`variable`是用来保存输入数值的一个或多个变量名。如果没有提供变量名,shell 变量`REPLY`会包含用户输入的一整行数据。
350358

351359
下面是一个例子`demo.sh`
352360

@@ -366,8 +374,6 @@ $ bash demo.sh
366374
你的输入:你好,世界
367375
```
368376

369-
`read`命令的参数,就是保存用户输入内容的变量名。如果省略了`read`命令的参数,用户输入的内容会保存在环境变量`REPLY`
370-
371377
`read`可以接受用户输入的多个值。
372378

373379
```bash
@@ -379,6 +385,30 @@ echo "Hi! $LN, $FN !"
379385

380386
上面例子中,`read`根据用户的输入,同时为两个变量赋值。
381387

388+
如果用户的输入项少于`read`命令定义的变量数目,那么额外的变量值为空。如果用户的输入项多于定义的变量,那么多余的输入项会包含到最后一个变量中。
389+
390+
如果`read`命令之后没有定义变量名,那么环境变量`REPLY`会包含所有的输入。
391+
392+
```bash
393+
#!/bin/bash
394+
# read-single: read multiple values into default variable
395+
echo -n "Enter one or more values > "
396+
read
397+
echo "REPLY = '$REPLY'"
398+
```
399+
400+
上面脚本的运行结果如下。
401+
402+
```bash
403+
$ read-single
404+
Enter one or more values > a b c d
405+
REPLY = 'a b c d'
406+
```
407+
408+
`read`命令的参数如下。
409+
410+
**(1)-t 参数**
411+
382412
`read`命令的`-t`参数,设置了超时的秒数。如果超过了指定时间,用户仍然没有输入,脚本将放弃等待,继续向下执行。
383413

384414
```bash
@@ -394,7 +424,25 @@ fi
394424

395425
上面例子中,输入命令会等待3秒,如果用户超过这个时间没有输入,这个命令就会执行失败。`if`根据这个返回码,转入`else`代码块,继续往下执行。
396426

397-
`-s`参数使得用户的输入不显示在屏幕上,这常常用于输入密码或保密信息。
427+
**(2)-p 参数**
428+
429+
`-p`参数指定用户输入的提示信息。
430+
431+
```bash
432+
read -p "Enter one or more values > "
433+
echo "REPLY = '$REPLY'"
434+
```
435+
436+
上面例子中,先显示`Enter one or more values >`,再接受用户的输入。
437+
438+
**(3)其他参数**
439+
440+
- `-a array`:把用户输入赋值到数组`array`中,从零号位置开始。
441+
- `-d delimiter`:定义字符串`delimiter`的第一个字符作为用户输入的结束,而不是一个换行符。
442+
- `-n num`:读取`num`个输入的字符,而不是读取整行。
443+
- `-r`:raw 模式,表示不把用户输入的反斜杠字符解释为转义字符。
444+
- `-s`:使得用户的输入不显示在屏幕上,这常常用于输入密码或保密信息。
445+
- `-u fd`:使用文件描述符`fd`作为输入。
398446

399447
## 命令执行结果
400448

docs/variable.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ $ printenv
1919
- `EDITOR`:文本编辑器的名字。
2020
- `HOME`:用户的主目录。
2121
- `HOST`:当前主机的名称。
22+
- `IFS`:词与词之间的分隔符,默认为空格。
2223
- `LANG`:字符集以及语言编码,比如`zh_CN.UTF-8`
2324
- `PATH`:由冒号分开的目录列表,当输入可执行程序名后,会搜索这个目录列表。
2425
- `PS1`:Shell 提示符。
@@ -41,8 +42,7 @@ $ echo $PATH
4142
```
4243

4344
注意,`printenv`命令后面的变量名,不用加前缀`$`
44-
$ readonly TUX=penguinpower
45-
$ TUX=Mickeysoft
45+
4646
## 局部变量
4747

4848
局部变量是仅在当前 Shell 可用的变量,一旦退出,就不存在了。

0 commit comments

Comments
 (0)