很奇怪,仔细看了一下,原来进入容器的时候终端使用的 sh,切换为 bash 就好了(在终端输入 bash 命令就可以切换为 bash 了)。 sh 和 bash 都是常见的Unix shell,其实还有另外一个是 dash,接下来看下三者的联系和区别。 sh sh 是 Shell 的缩写,是Unix/Linux系统的默认shell,也是最古老的shell之一。sh是标准的...
原来bash是GNU/Linux 操作系统中的 /bin/sh 的符号连接,但由于bash过于复杂,有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash,且/bin/sh符号连接到dash。Dash Shell 比 Bash Shell 小的多(ubuntu16.04上,bash大概1M,dash只有150K),符合POSIX标准。Ubuntu 6.10开始默认是Dash。 2.规范和建议 标记为 “#!/...
bash 是 Bourne-Again Shell 的缩写,是 sh 的增强版,具有更多的功能和选项。bash提供了命令自动补全、历史记录、别名、作业控制等特性。bash 是大多数 Linux 发行版及macOS 系统的默认 shell。 dash dash 是 Debian Almquist shell 的缩写,是从 NetBSD 派生而来的轻量级 shell,专门为 Debian 发行版而设计。与 bas...
sh、bash 和 dash 是三种常见的Unix shell。sh是Unix/Linux系统的默认shell,也是最古老的shell之一,是标准的POSIX shell,有多个版本和实现,例如Bourne shell和POSIX shell。bash是Bourne-Again Shell的简称,是sh的增强版本,具有更多功能和选项。它提供了命令自动补全、历史记录、别名和作业控制等特性。
如今Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交 互,它速度更快,但功能相比bash要少很多,语法严格遵守POSIX标准,下面简要列举下从bash迁移到dash一般需要注意的问题 (将先前默认的 bash shell 更换为了 dash。其表现是 /bin/sh 链接到了 /bin/da...
通过以下方式可以使 shell 切换回 bash: $sudo dpkg-reconfigure dash 然后选择 no 或者 否 ,并确认。 这样做将重新配置 dash,并使其不作为默认的 shell 工具。 也可以直接修改 /bin/sh 链接文件,将其指定到 /bin/bash: $sudo ln -fs /bin/bash /bin/sh ...
技术标签: shell学习 shell 字符串1. dash的写法: 使用awk string="abc,def,h" for var in $(echo ${string} | awk '{split($0,arr,",");for(i in arr) print arr[i]}') do echo ${var} done 1 2 3 4 5 2. bash可以这样写: string="abc,def,h" OLD_IFS=”$IFS” IFS=”,” ...
Ubuntu的shell之bash和dash,Ubuntu的shell默认安装的是dash,而不是bash。运行以下命令查看sh的详细信息,确认shell对应的程序是哪个:$ls-al/bin/shdash比bash更轻,更快。但bash却更常用。如果一些命令、脚本等总不能正常执行,有可能是dash的原因。比如编译Android源代
在shell脚本中写for循环出现这个问题 原因: 从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接倒了/bin/dash而不是传统的/bin/bash。 解决办法:sudo dpkg-reconfigure dash 选择no 出现如下: 接着运行: 显示成功 Ubuntu sh命令无法正确执行 (修改默认sh为bash)...
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的。