PS1是Bash提示符的环境变量。我可以通过执行echo $PS1
来获取它。
我尝试使用os.Getenv来获取PS1
,但是返回空值:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Getenv("PS1"))
}
为什么会出现这种情况,我应该如何解决?谢谢。
PS1是Bash提示符的环境变量。我可以通过执行echo $PS1
来获取它。
我尝试使用os.Getenv来获取PS1
,但是返回空值:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Getenv("PS1"))
}
PS1可能没有被导出,这意味着它在bash的子进程中不会显示。
尝试:
export PS1
在运行应用程序之前
你还可以进行以下操作
PS1=$PS1 app
将其具体设置在子进程中
env VAR=val command…
。 - Dave C
os.Environ
会显示一个PS1=value
对吗? - Mateusz Dymczykecho $PS1
来获取它。 - waitingkuoenv | grep PS1
获取PS1,但可以通过set | grep PS1
获取。这两者有什么区别吗? - waitingkuoset
可以看到 shell 的本地变量和环境变量,而env
只能看到环境变量(这些变量被传递给子进程)。如果在env
中找不到它,则您的 Go 程序将无法使用它,您需要正确地导出它。您可以在 SO 上查找更详细的关于env
vsset
的解释。 - Mateusz Dymczyk