2015-03-31 139 views
2

PS1是bash提示符的环境变量。我可以echo $PS1如何通过golang获取环境变量PS1?

我尝试使用os.Getenv得到PS1得到这个,但没有返回值:

package main 

import (
    "fmt" 
    "os" 
) 

func main() { 
    fmt.Println(os.Getenv("PS1")) 
} 

为什么会出现这种情况,我应该怎么解决这个问题? 谢谢。

+2

是实际设置的变量吗?没有列出'os.Environ'显示你一个'PS1 = value'对? – 2015-03-31 08:39:48

+0

我可以通过'echo $ PS1'得到它 – waitingkuo 2015-03-31 09:06:29

+0

你是否开始使用同一个用户的过程(我的意思是运行那个程序)? – 2015-03-31 09:09:08

回答

6

PS1可能是不出口,这意味着它不会在bash的子流程显示

尝试

export PS1 

你运行你的应用程序

你也可以做

PS1=$PS1 app 

在子流程中具体设置

+0

这是sh/bash特有的。 csh系列的shell(包括zsh?)对于前者和可移植,shell不可知的语法有不同的语法,后面的方法是'env VAR = val命令...' – 2015-03-31 15:05:26