Ubuntu shell脚本:bash / dash
来源:互联网 发布:项目管理pmp认证 知乎 编辑:程序博客网 时间:2024/05/20 18:44
编写shell脚本时,指定脚本类型,如#!/bin/bash #!/bin/dash #!/bin/sh, 不同的shell支持不同语法/特性。
在ubuntu下:
$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 7月 10 2012 /bin/sh -> dash(sh实质是个链接,指向dash)
一个shell脚本执行时采用何种shell类型取决于: 运行时指定(sh bash dash) > 脚本内指定 > 当前用户默认shell
例:monitor.sh
#!/bin/sh
read -p "Please input (Y/N): " yn
if [ $yn == "Y" ] || [ $yn == "y" ]; then
echo "your choice is: Yes"
elif [ $yn == "N" ] || [ $yn == "n" ]; then
echo "your choice is: No"
else
echo "I don't know what your choice is"
fi
执行时不指定bash (脚本内指定 > 当前用户默认shell, echo $SHELL或查看/etc/passwd中对应用户的最后一个域内容)
./monitor.sh
执行时指定bash (运行时指定(sh bash dash) > 脚本内指定)
[bash/sh/dash] [./]monitor.sh
--------------------------------------------------------------引用start--------------------------------------------------------------
Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。
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。
通过以下方式可以使 shell 切换回 bash:
$sudo dpkg-reconfigure dash
然后选择 no 或者 否 ,并确认。
这样做将重新配置 dash,并使其不作为默认的 shell 工具。
也可以直接修改 /bin/sh 链接文件,将其指定到 /bin/bash:
$sudo ln -fs /bin/bash /bin/sh
还有一种解决方法是,在脚本文件中直接指定使用的 shell,而不是指定 sh:
例如使用 #!/bin/bash 或者 #!/bin/dash 而不是#!/bin/sh。
但这样将丧失脚本的通用性,使其在不具备所指定脚本的系统下不能被执行。
--------------------------------------------------------------引用end--------------------------------------------------------------
- Ubuntu shell脚本:bash / dash
- ubuntu shell环境 dash bash
- ubuntu dash shell 改为 bash
- ubuntu dash shell 改为 bash
- 修改Ubuntu dash shell为bash shell
- 修改 ubuntu dash shell为bash shell
- ubuntu dash shell and bash shelll
- Ubuntu的shell之bash和dash
- Ubuntu的shell之bash和dash
- Ubuntu的shell之bash和dash
- Ubuntu的shell之bash和dash
- Ubuntu的shell之bash和dash
- Ubuntu的shell之bash和dash
- Ubuntu默认shell dash改为bash
- ubuntu学习日记--Lesson6:shell,bash,dash
- ubuntu下shell脚本运行异常:bash和dash的区别
- ubuntu下shell脚本运行异常:bash和dash的区别
- ubuntu下shell脚本运行异常:bash和dash的区别
- iBATIS ResultMap基础浅析
- Linux中断内核编程
- JavaScript数组定义
- vbs对象成员的使用
- ]基于FrameBuffer的直接写屏
- Ubuntu shell脚本:bash / dash
- 自我介绍
- 判断com接口中是否存在某方法
- Openbravo开发手册
- 如何在JAVA程序中使用Struct一次传入多条数据给Oracle的存储过程
- vbs批量替换文件名称
- 一次请求在同一个事务实现
- GOP讲解
- Dispath Sources之DISPATCH_SOURCE_TYPE_TIMER