Update export.md
This commit is contained in:
parent
b1e9857461
commit
929b2f58b5
|
|
@ -3,30 +3,24 @@ export
|
|||
|
||||
为shell变量或函数设置导出属性。
|
||||
|
||||
### 概要
|
||||
## 概要
|
||||
|
||||
```
|
||||
export [-fn] [name[=word]]...
|
||||
|
||||
export -p
|
||||
```
|
||||
|
||||
### 主要用途
|
||||
## 主要用途
|
||||
|
||||
- 定义一到多个变量并设置导出属性。
|
||||
|
||||
- 修改一到多个变量的值并设置导出属性。
|
||||
|
||||
- 删除一到多个变量的导出属性。
|
||||
|
||||
- 显示全部拥有导出属性的变量。
|
||||
|
||||
- 为一到多个已定义函数新增导出属性。
|
||||
|
||||
- 删除一到多个函数的导出属性。
|
||||
|
||||
- 显示全部拥有导出属性的函数。
|
||||
|
||||
|
||||
#### 选项
|
||||
## 选项
|
||||
|
||||
```shell
|
||||
-f:指向函数。
|
||||
|
|
@ -37,17 +31,17 @@ export -p
|
|||
--:在它之后的选项无效。
|
||||
```
|
||||
|
||||
#### 参数
|
||||
## 参数
|
||||
|
||||
name(可选):变量名或已定义函数名。
|
||||
|
||||
value(可选):变量的值。
|
||||
|
||||
#### 返回值
|
||||
### 返回值
|
||||
|
||||
export返回true除非你提供了非法选项或非法名称。
|
||||
|
||||
### 例子
|
||||
## 例子
|
||||
|
||||
```shell
|
||||
# 显示全部拥有导出属性的变量。
|
||||
|
|
@ -97,44 +91,36 @@ PATH=/usr/local/jdk1.7.0/bin:$PATH
|
|||
export LD_LIBRARY_PATH=$(pwd):${LD_LIBRARY_PATH}
|
||||
```
|
||||
|
||||
### 错误用法
|
||||
## 错误用法
|
||||
|
||||
- 对未定义的函数添加导出属性。
|
||||
|
||||
- 对没有导出属性的函数/变量执行删除导出属性操作。
|
||||
- 在 `--` 后使用选项。
|
||||
|
||||
- 在`--`后使用选项。
|
||||
## Q&A
|
||||
|
||||
|
||||
### Q&A
|
||||
|
||||
Q:对变量或函数设置导出属性有什么用?
|
||||
#### Q:对变量或函数设置导出属性有什么用?
|
||||
|
||||
A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。( **参考链接4** )
|
||||
|
||||
|
||||
Q:如果我编写的脚本修改了已有的环境变量的值,那么执行它会在当前终端生效吗?会影响之前以及之后打开的终端吗?
|
||||
#### Q:如果我编写的脚本修改了已有的环境变量的值,那么执行它会在当前终端生效吗?会影响之前以及之后打开的终端吗?
|
||||
|
||||
A:只有通过`source`方式调用的脚本会生效,您可以查看`source`命令获得更多信息;其他方式只是在子shell中执行。
|
||||
之前的不会影响,之后的除非是修改了`~/.bashrc`这种启动终端时加载的脚本。( **参考链接1** )
|
||||
|
||||
#### Q:我脚本文件中调用`~/.bashrc`中定义的函数和变量。为什么在新打开的终端中通过 `sh` 方式调用该脚本或直接运行
|
||||
|
||||
Q:我脚本文件中调用`~/.bashrc`中定义的函数和变量。为什么在新打开的终端中通过 `sh` 方式调用该脚本或直接运行
|
||||
这个当前用户有执行权限的脚本却不能使用这些函数和变量?
|
||||
|
||||
这个当前用户有执行权限的脚本却不能使用这些函数和变量?
|
||||
A:请在`~/.bashrc`文件中增加export它们的语句。另请参阅 **知识点** 段落。
|
||||
|
||||
|
||||
Q:数组和关联数组也可以设置导出属性吗?
|
||||
#### Q:数组和关联数组也可以设置导出属性吗?
|
||||
|
||||
A:是可以的(如果你的bash支持它们),不过有些问题( **参考链接2** )。
|
||||
|
||||
|
||||
Q:为什么我在查看变量或函数导出属性的时候显示的开头是`declare`?
|
||||
#### Q:为什么我在查看变量或函数导出属性的时候显示的开头是`declare`?
|
||||
|
||||
A:因为`declare`也能够设置变量或函数的导出属性,详见`declare`命令。
|
||||
|
||||
|
||||
### 注意
|
||||
|
||||
1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
|
||||
|
|
@ -161,11 +147,8 @@ A:因为`declare`也能够设置变量或函数的导出属性,详见`declar
|
|||
### 参考链接
|
||||
|
||||
1. [关于bashrc profile文件的讨论](https://www.cnblogs.com/hongzg1982/articles/2101792.html)
|
||||
|
||||
2. [关于export数组的讨论](https://stackoverflow.com/questions/5564418/exporting-an-array-in-bash-script)
|
||||
|
||||
3. [export -pf用法](https://unix.stackexchange.com/questions/22796/can-i-export-functions-in-bash)
|
||||
|
||||
4. [环境变量和shell变量的区别](https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference)
|
||||
|
||||
### 扩展阅读
|
||||
|
|
|
|||
Loading…
Reference in New Issue