我有一个像这样写的“set_var.sh”脚本
#!/bin/bash
export NAME=release
export ROOT=/Volumes/name/dev/release
但是如果我从终端运行这个set_var.sh,之后我发出set命令检查变量我找不到NAME和ROOT var。
我想知道我的情况有什么问题。
答案 0 :(得分:0)
它是在子shell中设置的。
你需要
source set_var.sh
答案 1 :(得分:0)
如果您只是运行 set_var.sh,它会在自己的shell中运行,退出,丢失已设置的变量。
如果要更改交互式shell中的变量,可以使用:
source set_var.sh
或简写,
. set_var.sh
这将执行脚本的行,就好像它们被输入到交互式shell中一样。
请注意,当您以这种方式“获取”文件时,它不需要第一行的“shebang”。
另请注意,此功能也存在于Bourne shell中,但仅限于短格式版本。