1 回答

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)境變量列表中找到這些名稱。
- 1 回答
- 0 關(guān)注
- 226 瀏覽
添加回答
舉報