精华内容
下载资源
问答
  • GNU/Linux 操作系统中的 /bin/sh 是 bash(Bourne-Again Shell)的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash(Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得...
    GNU/Linux 操作系统中的 /bin/sh 是 bash(Bourne-Again Shell)的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash(Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。Ubuntu 号称自从他们在 6.10 版里这样做了以后,系统启动速度有了明显的提升。Debian 计划在下一个发行版(代号 lenny)中也将 dash 作为默认的 /bin/sh。

     

      按照惯例(以及很多写脚本的规范),标记为“#!/bin/sh”的脚本不应使用任何 POSIX 没有规定的特性(使用 bash 特性的脚本要使用“#!/bin/bash”),所以在理论上,这样应该没有任何副作用。但是现实中,Linux 下的很多(不规范的)脚本有所谓 bashism,却在文件头标记为“#!/bin/sh”。有人把脚本失败归咎于 Ubuntu 而不是自己的脚本,这是不公平的。

      刚才在 Debian (testing)下尝试用 dash 作为 /bin/sh,并重启了一下系统,好像快了那么一点点(心理作用?)不过我想它节约的那点时间也许比挂载我的两个 reiserfs 分区用的时间还要少……

      遇到的问题:自己的两个脚本挂了,把“#!/bin/sh”改为“#!/bin/bash”;自己的一个带 bashism 的 Makefile 挂了,加上“SHELL=/bin/bash”。

      在 Debian 下,先安装软件包 dash,然后 dpkg-reconfigure dash,回答 Yes 即可。

      在 Ubuntu 下这已经是默认,如果因为某些原因需要改回到 bash,也是用 dpkg-reconfigure dash。

    展开全文
  • dash为bash

    2019-11-08 11:34:31
    ls -l /bin/sh 看了一下,发现它指向 dash 而不是 bash,网上说 dash 功能有点少,难怪。 执行 /bin/bash 启用 bash,就比较好用了。 References 关于在linux下无法使用tab键补全 bash和dash的区别 ...

    进入一个 docker 的环境之后,发现默认的 shell 没有 tab 补全,ll 也不是 ls -l 而是报错。
    ls -l /bin/sh 看了一下,发现它指向 dash 而不是 bash,网上说 dash 功能有点少,难怪。
    执行 /bin/bash 启用 bash,就比较好用了。

    References

    1. 关于在linux下无法使用tab键补全
    2. bash和dash的区别
    展开全文
  • 出现此问题的原因,是由系统的兼容性引起的,linux下默认了指向dash而非bash。 linux下Dash改Bash: 1.先查看是使用哪个shell ls -al /bin/sh 2.#如果是Dash可以用以下方法切回bash(选择NO) 方法一:sudo dpkg-...

    出现此问题的原因,是由系统的兼容性引起的,linux下默认了指向dash而非bash。

    linux下Dash改Bash:

    1.先查看是使用哪个shell

    ls -al /bin/sh

    2.#如果是Dash可以用以下方法切回bash(选择NO)

    方法一:sudo dpkg-reconfigure  dash

    方法二:sudo ln-fs  /bin/bash   /bin/sh

     

    (感谢其他的前辈,这是之前从网上查找后,自己做的笔记,自己整理出来,作为我的成长之路的经历,写此博客是为了记录自己出现过的问题,如有错误或与他人的相似之处请谅解)

     

    转载于:https://www.cnblogs.com/suesky/p/6392003.html

    展开全文
  • 1:原因 兼容性问题,因为Linux将sh默认指向dash,而不是bash。 2:解决 执行命令sudo dpkg-reconfigure dash,选择no。

    1:原因

    兼容性问题,因为Linux将sh默认指向了dash,而不是bash。

    2:解决

    执行命令sudo dpkg-reconfigure dash,选择no。
    在这里插入图片描述

    展开全文
  • linux shell Bad substitution

    2018-12-18 10:56:58
    我的脚本1.sh是以#! /bin/bash开头的 执行 sh 1.sh 会报错 ...1.sh: 6: 1.sh: Bad ...原因是ubuntu的sh是连接指向dash的,而不是bash,在执行${line:0:3}的时候会出问题 把执行方法改为 bash 1.sh 就好了...
  • 兼容性问题,因为linux将sh默认指向dash,而不是bash 解决: 在root下面执行 dpkg-reconfigure dash,选择no zxl@ubuntu:~/package$ su Password: root@ubuntu:/home/zxl/package# dpkg-reconfigure dash
  • 兼容性问题,因为linux将sh默认指向dash,而不是bash 解决: 在root下面执行 dpkg-reconfigure dash,选择no mynt@ubuntu:~/package$ su Password: root@ubuntu:/# dpkg-reconfigure dash ...
  • 兼容性问题,因为linux将sh默认指向dash,而不是bash 解决: 在root下面执行 dpkg-reconfigure dash,选择no bixiaopeng@ubuntu:~/package$ su Password: root@ubuntu:/home/bixiaopeng/package# dpkg-...
  • 原因:兼容性问题,linux将sh默认指向dash,而不是bash 解决方法:在root下执行以下代码,并选择no,再次运行shell脚本,即可 sudo dpkg-reconfigure dash
  • GNU/Linux 操作系统中的 /bin/sh 是 bash(Bourne-Again Shell)的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash(Debian Almquist Shell),并建议将 /bin/sh 指向它,以获得...
  • Debian和Ubuntu中,/bin/sh默认已经指向dash,它主要是为了执行脚本而出现,而不是交互,原因是dash更快、更高效,但功能相比bash要少很多,语法严格遵守POSIX标准。 从Ubuntu 6.10开始,默认使用dash(theDebian ...
  • 兼容性问题,因为linux将sh默认指向dash,而不是bash 解决: #在root下面执行 dpkg-reconfigure dash,选择no root@adt-SA5212M5:/home/adt/Downloads/wy# dpkg-reconfigure dash 然后重新执行.sh 脚本就可以了 ...
  • 就是因为用的是linux将sh指向dash而不是bash,so。。兼容就有问题了 查看当前指向就是 echo $SHELL 一般在使用bash特性的脚本前写 #!/bin/bash 但是有时一些库就比较麻烦了 所以干脆直接修改指向了 ...
  • linux下make编译报错如下图所示: 问题1:/bin/sh: 1: syntax error: “...原因分析:是linux将sh指向dash而不是bash 解决方法: 在终端输入: ls -l /bin/sh # 提示如上图所示 sudo dpkg -dpkg-reconfigure ...
  • 今天用make 编译 蹦到 bash ‘/bin/sh: Syntax error: “(” unexpected ...原因是是linux将sh指向dash而不是bash 直接改配置 dpkg-reconfigure dash 选默认不是dash 转载于:https://www.cnblogs.co...
  • 我新建了一个用户,默认提示符是$,而且没用前面...在使用adduser/useradd新建用户时通过--shell参数指定使用bash,默认的/bin/sh是指向dash的 对于已创建用户,自己修改/etc/passwd,将/bin/sh改成/bin/bash 再或者
  • Linux系统中的/bin/sh本是bash的符号链接,鉴于bash过于复杂,有人把bash从NetBSD移植到Linux并更名为dash,并建议将/bin/sh指向它,以获得更快的脚本执行速度。DashShell比BashShell小的多,符合POSIX标准。 二,...
  • 源码 #!/bin/bash ...arr=('a' 'b' 'c' 'd' 'e' 'f' 'girl') #數組能否執行,與shell版本相關,sh默認指向/bin/dash。執行時,可使用:. scriptFileName arr[7]='h'; #單獨指定數組元素值 ...
  • 把sh改为指向bash: 1,直接把/bin/sh的软链接改到bash中。 如:ln -s /bin/bash /bin/sh 2.sudo dpkg-reconfigure dash 出现菜单问你是否要dash的时候,选no就可以了。 检查:ls /bin/sh -al 发现软链接指向/bin/...
  • 命令如下: .../bin/sh # 这是Linux里常用的Shell,指向/bin/bash /bin/bash # 这是Linux里常用的Shell,也是默认使用的Shell /sbin/nologin # 这是Linux里常用的Shell,用于禁止用户登录 /bin/dash /bin
  • Shell编程笔记

    2020-10-09 10:39:21
    有些linux的sh指向bash,两者等价,但有些则不一样。两者的区别参见: https://www.cnblogs.com/macrored/p/11548347.html https://www.jianshu.com/p/762d4cccee7e 布尔类型的定义和判断 the_world_is_...
  • debian/ubuntu上sh命令默认是指向dash,而不是bashDebian Almquist shell,缩写为dash,一种 Unixshell,相容于POSIX标准。它比 Bash 小,只需要较少的磁盘空间,但是它的对话性功能也较少。它由 NetBSD版本的...
  • author:headsen chen date : 2019-08-08 11:11:38 notice : 个人原创 Ubuntu上运行shell脚本总是报下面这个错误,在centos下面或者mac里面都没有问题 ...原因分析:linux将sh默认指向dash,而...
  • 这个错误至少有2种可能的原因: 1、是win下的文件到了linux下出现一些“^M”这这样的...2、ubuntu有些版本默认的sh是指向dash的,ls -l sh可以看出来,sh这个软连接是指向哪个sh。需要修改sh->/bin/sh就好了。...
  • 刚刚开始接触linux shell 编程,脚本里面有一条let命令,在运行.../bin/sh 指向dash 而不是 bash , dash 不支持 let 命令 刚学 linux ,不大敢动文件进行配置,于是又在网上求医问药,得到了两个答案: 1.dash ...
  • HI3516AD+OV4689内核编译

    2018-04-05 15:26:33
    有个HI3516AD+OV4689的项目,之前也只是单看linux,没怎么实际用过,这个借着这个源码,代码,内核什么的,编译编译,...默认/bin/sh指向dash的,但是这个要用bash来跑,所以直接改成#!/bin/bash就ok了。 运行完...
  • ./test.sh: 3: ./test.sh: Syntax error: "(...兼容性问题,因为linux将sh默认指向dash,而不是bash 解决办法:sudo dpkg-reconfigure dash 在弹出的窗口选择no 然后再重新执行 sudo sh ubuntu.sh就可以了
  • UBUNTU上运行sh脚本时错误解决办法

    千次阅读 2017-09-16 21:27:53
    在Ubuntu上运行sh脚本时出现*.sh:Syntax error:"("unexpected类似错误原因是Linux将sh默认指向dash,而不是bash 解决方法:sudo dpkg-reconfigure dash 在弹出的选项里选择no 重新运行脚本即可转载地址:...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

linux指向dash

linux 订阅