我的系统Debian 9.4
使用linux kernel 4.9.0-8-amd64
和echo $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
。它表明它只是简单地fork
和execvp
dmenu_run
。没有理由用/bin/bash
run 来代替/bin/sh
.
答案1
通常,它是指向用作默认 shell的系统的/bin/sh
符号链接。/bin/bash
bash