
1 privil Dec 11, 2016 via iPhone 脚本没获取系统变量 |
2 wangtuyi Dec 11, 2016 只有一条命令,只输出一行空行,因为$PS1 没有被赋值 在命令行 echo $PS1 却有结果,说明在 echo 之前$PS1 已经被赋值了 |
3 antispiral Dec 11, 2016 echo $$PS1 |
4 jr028740 OP @antispiral 额.......显示的不是 PS1 环境变量的值啊..........而且$$本身就是一个变量。 |
6 tatsuteng Dec 11, 2016 非交互模式的 shell 会自动 unset PS1 变量,你需要迂回求解: ``` echo "echo \$PS1 && exit 0" | bash -i 2> /dev/null ``` |
9 wangtuyi Dec 11, 2016 @jr028740 你按照 @tatsuteng 的命令,实际上 bash 会有一个 bashrc $ cat /etc/bashrc # System-wide .bashrc file for interactive bash(1) shells. if [ -z "$PS1" ]; then return fi PS1='\h:\W \u\$ ' # Make bash check its window size after a process completes shopt -s checkwinsize [ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM" 按照我的,你输出空行因为 /etc/zshrc 的默认并没有设定$PS1 ,在我的机器上是 $ cat /etc/zshrc # Correctly display UTF-8 with combining characters. if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then setopt combiningchars fi disable log 我自己是 source 了我自定义的~/.zshrc ,所以能拿到我的$PS1 |