dmenu_run 是如何工作的?

dmenu_run 是如何工作的?

我的系统Debian 9.4使用linux kernel 4.9.0-8-amd64echo $SHELL在我的系统上给出/bin/bash/bin/sh是到 的链接/bin/dash

我很好奇为什么每次我运行应用程序时dmenu_run都会dwm有一个作为父进程运行的附加/bin/bash进程,所以我进一步研究了以下脚本dmenu_run

#!/bin/sh
dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &

我不明白为什么我的电脑上有/bin/bash而不是/bin/sh.我还阅读了相应的源代码dwm。它表明它只是简单地forkexecvp dmenu_run。没有理由用/bin/bashrun 来代替/bin/sh.

答案1

通常,它是指向用作默认 shell的系统的/bin/sh符号链接。/bin/bashbash

相关内容