Update declare.md
This commit is contained in:
parent
b00a52733f
commit
ddcb00afce
|
|
@ -3,99 +3,71 @@ declare
|
||||||
|
|
||||||
声明变量,设置或显示变量的值和属性。
|
声明变量,设置或显示变量的值和属性。
|
||||||
|
|
||||||
### 概要
|
## 语法
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
declare [-aAfFgilnrtux] [-p] [name[=value] ...]
|
declare [-aAfFgilnrtux] [-p] [name[=value] ...]
|
||||||
```
|
```
|
||||||
|
|
||||||
### 主要用途
|
## 主要用途
|
||||||
|
|
||||||
- 显示包含指定属性的全部变量和值
|
- 显示包含指定属性的全部变量和值
|
||||||
|
|
||||||
- 显示包含指定属性的一到多个变量和值
|
- 显示包含指定属性的一到多个变量和值
|
||||||
|
|
||||||
- 显示一到多个变量的属性和值
|
- 显示一到多个变量的属性和值
|
||||||
|
|
||||||
- 显示所有变量的属性和值并显示函数的定义
|
- 显示所有变量的属性和值并显示函数的定义
|
||||||
|
|
||||||
- 显示所有变量的属性和值
|
- 显示所有变量的属性和值
|
||||||
|
|
||||||
- 显示所有全局变量的属性和值
|
- 显示所有全局变量的属性和值
|
||||||
|
|
||||||
|
|
||||||
- 显示全部函数名和函数定义
|
- 显示全部函数名和函数定义
|
||||||
|
|
||||||
- 只显示全部函数名
|
- 只显示全部函数名
|
||||||
|
|
||||||
- 显示一到多个函数名和函数定义
|
- 显示一到多个函数名和函数定义
|
||||||
|
|
||||||
- 只显示一到多个函数名
|
- 只显示一到多个函数名
|
||||||
|
|
||||||
|
|
||||||
- 声明全局变量(可选:赋值)
|
- 声明全局变量(可选:赋值)
|
||||||
|
|
||||||
- 声明变量(可选:赋值、属性)
|
- 声明变量(可选:赋值、属性)
|
||||||
|
|
||||||
- 增加、删除变量的属性(可选:赋值)
|
- 增加、删除变量的属性(可选:赋值)
|
||||||
|
|
||||||
|
|
||||||
### 选项
|
## 选项
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
-f 将操作或显示限制为函数名及函数定义。
|
-f 将操作或显示限制为函数名及函数定义。
|
||||||
|
|
||||||
-F 只显示函数名(调试时附加行号和源文件)。
|
-F 只显示函数名(调试时附加行号和源文件)。
|
||||||
|
|
||||||
-g 在shell函数中使用时创建全局变量;其他情况下忽略。
|
-g 在shell函数中使用时创建全局变量;其他情况下忽略。
|
||||||
|
|
||||||
-p 显示每个名称的属性和值。
|
-p 显示每个名称的属性和值。
|
||||||
|
|
||||||
|
|
||||||
*设置属性的选项:
|
*设置属性的选项:
|
||||||
|
|
||||||
-a 创建数组(如果支持)。
|
-a 创建数组(如果支持)。
|
||||||
|
|
||||||
-A 创建关联数组(如果支持)。
|
-A 创建关联数组(如果支持)。
|
||||||
|
|
||||||
-i 增加整型属性。
|
-i 增加整型属性。
|
||||||
|
|
||||||
+i 删除整型属性。
|
+i 删除整型属性。
|
||||||
|
|
||||||
-l 增加小写属性,变量的值将转换为小写。
|
-l 增加小写属性,变量的值将转换为小写。
|
||||||
|
|
||||||
+l 删除小写属性。
|
+l 删除小写属性。
|
||||||
|
|
||||||
-n 增加引用属性(如果该选项存在)。
|
-n 增加引用属性(如果该选项存在)。
|
||||||
|
|
||||||
+n 删除引用属性。
|
+n 删除引用属性。
|
||||||
|
|
||||||
-r 增加只读属性。
|
-r 增加只读属性。
|
||||||
|
|
||||||
-t 增加追踪属性。
|
-t 增加追踪属性。
|
||||||
|
|
||||||
+t 删除追踪属性。
|
+t 删除追踪属性。
|
||||||
|
|
||||||
-u 增加大写属性,变量的值将转换为大写。
|
-u 增加大写属性,变量的值将转换为大写。
|
||||||
|
|
||||||
+u 删除大写属性。
|
+u 删除大写属性。
|
||||||
|
|
||||||
-x 增加导出属性。
|
-x 增加导出属性。
|
||||||
|
|
||||||
+x 删除导出属性。
|
+x 删除导出属性。
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 参数
|
## 参数
|
||||||
|
|
||||||
|
```shell
|
||||||
name(可选):变量名或函数名。
|
name(可选):变量名或函数名。
|
||||||
|
|
||||||
value(可选):变量的值。
|
value(可选):变量的值。
|
||||||
|
```
|
||||||
|
|
||||||
#### 返回值
|
## 返回值
|
||||||
|
|
||||||
declare返回true除非你提供了非法选项或赋值错误。具体导致异常的情况请查看**讨论**章节的**关于异常情况**。
|
declare 返回true除非你提供了非法选项或赋值错误。具体导致异常的情况请查看**讨论**章节的**关于异常情况**。
|
||||||
|
|
||||||
### 例子
|
## 例子
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# 声明变量,当然也欢迎您在这个网站(感谢本项目发起人 @jaywcjlove)查询linux命令。
|
# 声明变量,当然也欢迎您在这个网站(感谢本项目发起人 @jaywcjlove)查询linux命令。
|
||||||
|
|
@ -212,7 +184,7 @@ declare -F func_a func_b
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### 讨论
|
## 讨论
|
||||||
|
|
||||||
1. 全局和局部变量
|
1. 全局和局部变量
|
||||||
|
|
||||||
|
|
@ -231,7 +203,6 @@ declare -F func_a func_b
|
||||||
相关资料:
|
相关资料:
|
||||||
|
|
||||||
- [google提供的编码规范](https://github.com/google/styleguide)
|
- [google提供的编码规范](https://github.com/google/styleguide)
|
||||||
|
|
||||||
- [全局变量的讨论](https://unix.stackexchange.com/questions/381761/what-do-declare-name-and-declare-g-do)
|
- [全局变量的讨论](https://unix.stackexchange.com/questions/381761/what-do-declare-name-and-declare-g-do)
|
||||||
|
|
||||||
2. 关于`declare` `typeset` `export` `local` `readonly`命令
|
2. 关于`declare` `typeset` `export` `local` `readonly`命令
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue