/bin/sh 符号链接无法正常工作

/bin/sh 符号链接无法正常工作

我使用的是 i3,默认情况下,它sh在使用 i3 configexec命令启动进程时使用。这很好,但这意味着在我的 .zshrc 中创建的环境变量不会转移到 i3 的子进程(几乎是我打开的任何程序)。

为了解决这个问题,我尝试将/bin/sh符号链接更改为指向,/bin/zsh如下所示:

$ which sh
/bin/sh
$ sudo rm /bin/sh
$ sudo ln -s /bin/zsh /bin/sh

这将创建我期望的符号链接:

$ ls -la /bin/sh    
lrwxrwxrwx 1 root root 8 Mar 13 22:16 /bin/sh -> /bin/zsh
$ which sh
/bin/sh

但是,当我尝试运行 时shsh开始而不是zsh.当我跑步时也会发生同样的情况/bin/sh。我注销然后重新登录。它没有改变任何东西。

/bin/zsh并且命令按预期zsh启动。zsh

答案1

事实证明zsh发射正常,但它在模仿sh。我应该更仔细地阅读手册页。正如 @steeldriver 指出的,手册页指出:“当 Zsh 分别作为 sh 或 ksh 调用时,它会尝试模拟 sh 或 ksh

相关内容