标签: dash-shell

将 sh 链接到 dash 有什么意义?

我想知道sh符号链接的意义dash是什么?我知道这dash应该比 快bash,但我不确定为什么原始sh外壳不存在于sh.

或者如果有什么原因没有sh链接到bash

bash dash-shell

52
推荐指数
3
解决办法
3万
查看次数

如何在 Ubuntu /bin 上找到 Dash shell 的版本?

在此处输入图片说明

我想知道是否有办法找到 shell Dash 版本。

我尝试了几个命令,如 : dash -v, dash -V, dash --version,但没有一个有效。

Dash Shell 维基百科:http : //en.wikipedia.org/wiki/Debian_Almquist_shell

dash-shell

14
推荐指数
1
解决办法
5673
查看次数

我的脚本如何确定它是由 bash 还是 dash 运行?

我正在两个不同的系统上运行全新的 Oneiric 安装(即不是升级),并且遇到了相同的一组看似相关的问题。

最令人沮丧的是,当我使用从 Mac OS X 随身携带的 .profile 和 .bashrc 时,通过 LightDM 登录到 X 会立即将我注销。我相信这是因为当运行“/bin/sh”时,它表现为/bin/dash,但仍然将$SHELL 变量设置为/bin/bash。

外推法

我有一个巨大的.bashrc。如果你愿意,你可以在这里看到它,但它的内容可能不相关,除了它充满了 bashism 的事实,以及它在 xterm 内或在虚拟控制台上没有错误的事实。

我的.profile样子是这样的(缩写):

case $SHELL in 
*bash*)
    if [ -f $HOME/.bashrc -a -r $HOME/.bashrc ]; then
        . $HOME/.bashrc
    fi
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

如果我尝试通过 LightDM 登录 X,它会立即将我注销。我在.xsession-errors与我的 .bashrc 相关的错误看起来像这样(缩写):

/home/mrled/.bashrc: 103: [[: not found
[: 103: Linux: unexpected operator
[: 274: -P :: unexpected operator
/home/mrled/.bashrc: 520: complete: not found
Run Code Online (Sandbox Code Playgroud)

正如我所说,当我从虚拟控制台运行 bash 时,我没有收到这些错误。此外,如果我删除我的 …

bash scripts dash-shell

13
推荐指数
2
解决办法
8593
查看次数

为什么不允许使用数字函数名称?

考虑以下:

$ ksh -c '1(){ echo hi;};1'
ksh: 1: invalid function name
$ dash -c '1(){ echo hi;};1'
dash: 1: Syntax error: Bad function name
$ bash -c '1(){ echo hi;};1'
bash: `1': not a valid identifier
bash: 1: command not found
$ mksh -c '1(){ echo hi;};1'
hi
Run Code Online (Sandbox Code Playgroud)

基本上,我试图声明函数10这将是trueand 的简写false,但是正如您所看到的,我在函数中使用数字名称时遇到了问题。别名和两位数名称也会发生相同的行为。

问题是“为什么”?它是 POSIX 强制要求的吗?或者只是像伯恩一样的贝壳的怪癖?

另请参阅相关的问题

command-line bash dash-shell ksh

10
推荐指数
3
解决办法
1683
查看次数

~/ 如何工作?

在终端中,引用 home 的一种方法是使用~/. 我不明白这是如何工作的,因为输出file ~/是:

/home/admin/: directory
Run Code Online (Sandbox Code Playgroud)

并且只是运行~/结果:

-bash: /home/admin/: Is a directory
Run Code Online (Sandbox Code Playgroud)

那么转换~//home/admin什么?

~/似乎也适用于/bin/dash,所以我也知道它不是特定于 bash 的。

command-line bash home-directory dash-shell sh

10
推荐指数
2
解决办法
1123
查看次数

破折号中的行编辑

有可能的类型化行字一个字,左右移动使用快捷键ESCB

这在不起作用。据我从谷歌搜索中了解到,这与 readline 支持有关,但是我在任何地方都没有看到它提到如何启用对 dash 的支持。

这是我的问题的核心:如何为破折号启用行导航

command-line dash-shell

8
推荐指数
2
解决办法
1268
查看次数

bash 和 dash 之间的语法差异是什么?

我刚刚意识到,在当前的 Ubuntu 版本中/bin/sh,不再符号链接到bash(多年来一直如此),而是改为dash。我想知道这两个 shell 之间的实际语法差异是什么,以及编写的 shell 脚本bashdash. 有人能指出我对这两者之间差异的清晰描述吗?

bash scripts dash-shell

8
推荐指数
1
解决办法
4233
查看次数

bash 与 dash 的速度有具体的数字吗?

根据这篇文章,dash被选为/bin/sh因为bash较慢:Dash as /bin/sh

有没有具体的数字来说明速度有多快dash

如果使用bash而不是dash引导 Ubuntu需要多长时间?

上面链接的论点今天仍然有效吗?对于背景:system-v init 使用了很多 shell 脚本,但 systemd 没有。

这个问题与综合基准测试中的速度无关。它关乎最终用户的整体显着利益。关于 dash 与 bash 速度的综合基准测试并没有回答这个问题。

bash benchmarks dash-shell

7
推荐指数
1
解决办法
1840
查看次数

如何在shell中连接两个命令

我曾经用这个命令来计算我用鼠标点击了多少次,命令是xev | grep "ButtonPress".

我的同事修改了命令,使其返回:

ButtonPress 0
ButtonPress 1
ButtonPress 2
ButtonPress 3
Run Code Online (Sandbox Code Playgroud)

等等......不幸的是,他不再能联系上,所以我无法再联系到他。

我记得参与i++和类似的事情,如何重现命令?

command-line bash scripts dash-shell

7
推荐指数
1
解决办法
673
查看次数

为什么在我的 shell 中不能自动完成工作?

我不太喜欢 Linux,我有以下疑问:客户端为我提供了一个 Ubuntu 18.04.3 LTS 虚拟机,我可以通过 SSH 访问它。(我使用 MobaxTerm 作为 SSH 客户端,但这应该不是问题。)使用的 shell 是sh.

问题是在 shell 中,自动完成功能没有像我预期的那样使用Tab密钥工作。

它只是简单地放置了经典的制表符空格。

为什么?如何更改此配置?

command-line auto-completion dash-shell sh

7
推荐指数
1
解决办法
6148
查看次数