在哪里使用 dash 作为默认 shell?

在哪里使用 dash 作为默认 shell?

根据https://wiki.ubuntu.com/DashAsBinSh

默认登录 shell 仍为 bash。从菜单或快捷方式 [crtl-alt-t] 打开终端可提供交互式 bash。从桌面或文件管理器运行的脚本,通过对话框“在终端中运行”将作为 POSIX dash 执行。

livy@disco-dingo:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Aug 22 10:53 /bin/sh -> dash
livy@disco-dingo:~$ cat Desktop/test.sh
echo $SHELL > ~/Desktop/test-result.txt;

我添加了执行权限,然后双击该test.sh文件,结果如下:

livy@disco-dingo:~$ cat Desktop/test-result.txt 
/bin/bash

Ubuntu wiki 是否已经过时了?

答案1

根据nixCraft:我如何找出我在 Linux/Unix 上使用的 shell?

...$SHELL是当前用户的shell,但不一定是在移动时运行的shell。[原文如此]

我不知道如何获取当前正在运行的 shell。以下仅给出脚本的名称:

ps -p $$ > ~/Desktop/test-result.txt

但以下情况除外:

pstree -s $$ > ~/Desktop/test-result.txt

在我的电脑上有以下输出:

systemd---test.sh---pstree

要查看是否dash正在运行,您可以尝试:

pgrep dash > ~/Desktop/test-result.txt

首先在交互式 shell 中检查它是否尚未运行,以避免误报。在我的计算机上,即使我有#!/bin/dashdash似乎也没有使用。因此似乎systemd可能直接运行脚本。

相关内容