关于shell脚本里面的的#!/bin/bash解释
2010-01-21 11:10
525 查看
1.在文件里面输入一系列命令,可以直接执行吗?
可以。作者认为,这时调用的是当前用户默认使用的shell。
如果其中一个命令有错,后面的命令还是会继续执行下去的
如果说使用了”&&” ,如果前面的命令执行错误,,后面的命令不执行。
2.加#/bin/bash目的是什么,既然不加也可以?
这些不是注释符,而是说明下面的脚本是在什么shell下面运行的,并且以该shell环境来执行脚本。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的基础上增加、增强了很多特性。
一个简单的例子
#!/bin/ksh
export LOG=/tmp/test.log
exec >> $LOG 2>&1
echo "a test message!"
exit 0
在AIX下面编辑好该脚本后直接执行,运行成功在/tmp下面会有一个test.log文件生成,文件内容为"a test message!"
如果我们把上面的
#!/bin/ksh
换成
#!/bin/csh
执行脚本,则会有如下报错:
export不是shell命令
即,在csh里面没有export这个命令,所以会报错。
可以。作者认为,这时调用的是当前用户默认使用的shell。
如果其中一个命令有错,后面的命令还是会继续执行下去的
如果说使用了”&&” ,如果前面的命令执行错误,,后面的命令不执行。
2.加#/bin/bash目的是什么,既然不加也可以?
这些不是注释符,而是说明下面的脚本是在什么shell下面运行的,并且以该shell环境来执行脚本。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的基础上增加、增强了很多特性。
一个简单的例子
#!/bin/ksh
export LOG=/tmp/test.log
exec >> $LOG 2>&1
echo "a test message!"
exit 0
在AIX下面编辑好该脚本后直接执行,运行成功在/tmp下面会有一个test.log文件生成,文件内容为"a test message!"
如果我们把上面的
#!/bin/ksh
换成
#!/bin/csh
执行脚本,则会有如下报错:
export不是shell命令
即,在csh里面没有export这个命令,所以会报错。
相关文章推荐
- shell脚本执行错误:#!/bin/bash: No such file or directory
- 笔记:Shell脚本文件报错:-bash: ./xxx.sh: /bin/bash^M: bad interpreter: No such file or directory
- shell脚本第一行:#!/bin/bash的含义
- Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录
- Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory
- 1、关于shell脚本里面$*,$@,$#的含义
- ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell
- shell脚本报错 /bin/bash^M: bad interpreter
- 关于makefile和shell脚本的异同:make和bourne again shell--bash
- Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory
- shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory
- shell脚本异常“bash: ./rebuild.sh: /bin/sh^M: bad interpreter: No such file or directory
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
- ubuntu shell脚本line 1: #!/bin/bash: No such file or directory
- Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
- 写好第一个Shell脚本#!/bin/bash作用
- shell脚本执行后出现错误提示" /bin/bash^M: bad interpreter: No such file or dire"的解决办法