第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

os.Getenv 和 os.LookupEnv 不返回 $HISTFILE

os.Getenv 和 os.LookupEnv 不返回 $HISTFILE

Go
小唯快跑啊 2022-12-05 17:16:10
我正在使用zsh,并且正在嘗試訪問這些環(huán)境變量:$ echo $HISTFILE/home/amir/.zsh_history$ echo $HISTSIZE50000$ echo $SAVEHIST10000但是os.LookupEnv返回"", false所有三個,并且os.Getenv自然地返回一個空字符串:package mainimport (    "fmt"    "os")func main() {    histfile, found := os.LookupEnv("HISTFILE")    if found {        fmt.Println(histfile)    } else {        fmt.Println("$HISTFILE not found")    }    histsize, found := os.LookupEnv("HISTSIZE")    if found {        fmt.Println(histsize)    } else {        fmt.Println("$HISTSIZE not found")    }    savehist, found := os.LookupEnv("SAVEHIST")    if found {        fmt.Println(savehist)    } else {        fmt.Println("$SAVEHIST not found")    }}$ go run main.go$HISTFILE not found$HISTSIZE not found$SAVEHIST not found現(xiàn)在,如果我export將這些變量放入$HOME/.zshrc:$ grep -iE "histfile|histsize|savehist" $HOME/.zshrcexport HISTFILE="$HOME/.zsh_history"export HISTSIZE=1000000export SAVEHIST=1000000然后它工作并返回正確的值:$ go run hyst.go/home/amir/.zsh_history10000001000000當(dāng)我沒有顯式導(dǎo)出這些變量時,$HISTSIZE和的值$SAVEHIST是不同的,但它們不為空。那么為什么這些函數(shù)會為這些變量返回空字符串呢?
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊

這是因?yàn)?HISTFILE、$HISTSIZE和$SAVEHIST不是默認(rèn)情況下的環(huán)境變量,而只是通過以下方式設(shè)置的shell 變量oh-my-zsh:


## History file configuration

[ -z "$HISTFILE" ] && HISTFILE="$HOME/.zsh_history"

[ "$HISTSIZE" -lt 50000 ] && HISTSIZE=50000

[ "$SAVEHIST" -lt 10000 ] && SAVEHIST=10000

這些是您在使用inecho之前使用時看到的值。export$HOME/.zshrc


區(qū)分環(huán)境變量和 shell 變量很重要:


子進(jìn)程可以訪問環(huán)境變量,但 shell 變量不能。您可以通過簡單地創(chuàng)建一個子進(jìn)程來驗(yàn)證此語句:


$ # Child processes don't inherit shell variables

$ key=value; sh -c 'echo "key=$key"'

key=


$ # They do, however, inherit environment variables

$ export key=value; sh -c 'echo "key=$key"'

key=value

為了能夠訪問子進(jìn)程中的 shell 變量,您可以export這樣做,就像您在以下代碼中所做的那樣$HOME/.zshrc:


$ key=value; export key; sh -c 'echo "key=$key"'

key=value

現(xiàn)在,要查看特定變量是否為環(huán)境變量echo,您可以直接檢查environment 變量列表,而不是使用 。


$ env | grep -i "shell"; echo $?

SHELL=/usr/bin/zsh

0

事實(shí)上$SHELL,環(huán)境變量也是如此?,F(xiàn)在對于歷史變量:


$ env | grep -iE "histfile|histsize|savehist"; echo $?

1

退出代碼為 1,表示無法在環(huán)境變量列表中找到這些名稱。


查看完整回答
反對 回復(fù) 2022-12-05
  • 1 回答
  • 0 關(guān)注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號