Tag: dash shell

/ bin / sh,/ bin / bash和/ bin / dash全部坏了,我该如何重新安装它们

删除了所有/bin/sh , /bin/bash和/bin/dash 。 我无法安装它们因为dpkg和apt-get需要安装shell而且没有shell可用。 我还在登录,我的Ubuntu仍在运行。 有没有办法从这种情况中恢复过来。 顺便说一下,我现在没有Live CD。

如何更换/修复乱搞/ bin / sh和/ bin /破折号

我已经损坏了我的/ bin / sh并且不知道如何替换它。 我不小心复制了它。 我怎样才能解决这个问题? 我正在运行Ubuntu Server 11.10,没有X. 更新:我尝试了由Eliah友情提供的修复,但我想我也复制了/ bin / dash! 更新:输出cd /bin; file sh dash bash; md5sum sh dash bash cd /bin; file sh dash bash; md5sum sh dash bash sh: symbolic link to `dash’ dash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux […]

关于bash和dash的速度是否有具体的数字?

根据这篇文章, dash被选为/bin/sh因为bash较慢: Dash为/ bin / sh 是否有快速dash速度的具体数字? 如果你使用bash而不是dash来启动Ubuntu需要多长时间? 上述链接的论点今天仍然有效吗? 对于后台:system-v init使用了很多shell脚本,但systemd却没有。 这个问题与合成基准的速度无关。 这是最终用户的整体显着优势。 关于破折号与bash速度的综合基准并没有回答这个问题。

短划线中的vi编辑模式(/ bin / sh)

TL; DR :默认的shell手册页说有vi编辑模式,但是set -o vi实际上并没有启用它 在许多shell中,包括dash ,POSIX标准规定set -o vi将启用vi编辑模式,其中交互式 shell的用户可以使用vi样式的快捷方式导航行。 在dash (Ubuntu的默认shell符号链接到/bin/sh )中,这不起作用,即使man page指定此function可用。 示例: $ dash $ set -o vi $ hello wolrd^[I 应该发生的事情是,使用Esc , Shift + i快捷方式,光标应该跳到行的开头。 如您所见,我得到一个控制字符作为输出。 我已经让一些用户在AskUbuntu Chat中测试了这个,他们确认了同样的行为。 注意,这与终端仿真器无关 – 我在3个不同的测试中测试了它:xterm,gnome-terminal和terminator。 我已经用其他shell, bash , mksh和ksh93 – 所有这些都按预期正常工作,所以这只是一个问题。

什么是通用shell脚本的示例,它将在终端中正确运行,但不是双击时?

我真的很想了解一些脚本可以从命令行运行但不是双击时的基本原因。 是否有一个脚本的例子可以做一些简单的事情,比如回显一个变量或类似的东西,它可以在命令行中重现,但是双击时却无法工作? 要清楚,我的意思是它应该在两个实例中运行,但是当双击时它应该无法正确执行其任务,并且它应该在任何最近的Ubuntu安装上执行此操作。 我希望通过能够重现我能理解的行为并在将来自己修复它。

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

考虑以下: $ 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 基本上,我试图声明函数1和0 ,它们对于true和false都是shorthands,但是你可以看到我在函数中使用数字名称时遇到了问题。 别名和两位数名称会出现相同的行为。 问题是“为什么”? 它是由POSIX强制执行的吗? 或者只是像伯恩一样的贝壳的怪癖? […]

破折号,命令替换不插入换行符?

基本上,这是问题: $ echo Hello”$(printf ‘\n’)”World HelloWorld 我忽略了什么?

破折号中的行编辑

在bash或mksh中 ,可以使用ESC B等快捷方式逐字移动键入的行。 这在ksh或dash中不起作用。 据我从谷歌搜索中了解到,这与readline支持有关,但是我没看到它提到如何启用对dash的支持。 这是我的问题的核心: 如何为短划线启用线路导航

与短划线相关联的重点是什么?

我想知道什么是与dash符号是什么? 我明白dash应该比bash快,但我不确定为什么原始的sh shell不存在于sh 。 或者,如果有什么原因与bash无关?