关于#!
每个shell 脚本开头都使用"#!",#!实际上是一个特殊的标识符,后面指定了执行该脚本要使用的shell.
如常用的有:
#!/bin/bash
#!/bin/sh
等。
#!/bin/sh , #!/bin/bash 等只能放在脚本文件的第一行,如果不在第一行,那么将被视为注释。
sh跟bash的区别
指定为“#!/bin/sh”时,如果执行到某一行出错,则不再继续往下执行。
指定为“#!/bin/bash”时,如果执行到某一行出错,会继续往下执行。
实际上 /bin/sh 等价于 /bin/bash --posix
如果不指定使用哪种shell执行,则默认使用当前登录的shell来执行,通常默认使用的shell都是bash。
查看当前系统可以使用的shell
cat /etc/shells
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/tmux /usr/bin/screen |
其中 bash 是几乎所有linux发行版中默认使用的shell。
查看系统默认使用的shell:
echo $SHELL
/bin/bash |
查看当前使用的shell
env | grep SHELL
SHELL=/bin/bash |
修改当前用户使用的shell(后续新建会话生效)
方法一、
chsh -s 要使用的shell的绝对路径
如:
chsh -s /bin/sh
方法二、
root@bosh:~# chsh
Changing the login shell for root
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]: 此处输入要使用的shell的绝对路径即可(如:/bin/sh)