export 命令用于将 shell 变量输出为环境变量,或者将 shell 函数输出为环境变量。以下是 export 命令的参数及其详解和举例:
-f:指向函数。这个参数用于将一个 shell 函数输出为环境变量。当使用这个参数时,函数会被导出为环境变量,使得它可以被子进程调用。
function my_function() {
echo "Hello, World!"
}
export -f my_function
上述代码将 my_function 函数导出为环境变量,使其可以在其他 shell 脚本或子进程中被调用。
-n :删除变量的导出属性。这个参数用于删除一个环境变量的导出属性,使得它不再被子shell进程继承。
举例:
bash
export MY_VARIABLE="Hello, World!"
export -n MY_VARIABLE
上述代码将删除 MY_VARIABLE 环境变量的导出属性,使其不再被子shell进程继承。
-p: 这个参数用于显示当前 shell 中所有export 的环境变量书香
export -p
请观察运行结果
-pf:罗列出全部拥有导出属性的函数。
举例:
export -pf
export 的参数只能从父->子 shell传递
在场景一情景下, 子shell要想获取到父shell的变量必须在 父shell中执行export向下传递
直接执行脚本会返回脚本的退出状态
那么脚本中的命令会出现在历史记录中(除非脚本内部有逻辑来防止这一点)
如果脚本中的命令失败了,它通常会继续执行直到脚本结束,除非脚本内部有逻辑来处理错误。
source 执行的时候你可以理解为将所有引用的代码铺平展开执行,这样其实不管是引入了多少个文件,它们都在一个进程中。 因此也就无所谓export或者不export了,因为都在同一个shell会话中
source 命令不会返回任何退出状态,因为它实际上并没有退出。脚本的退出状态会返回给当前的 shell
如果脚本使用 source 执行,那么脚本中的命令不会出现在执行脚本的 shell 的历史记录中
使用 source 时,如果脚本中的命令失败了,它会立即返回并显示错误。
这意味着脚本中定义的所有环境变量和修改都会保留在当前 shell 会话中。