版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DarrenXf/article/details/82078427
平时写的Shell都是bash,在Ubuntu上写Shell有些不习惯。因为buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。
$ cd /bin
$ ll
sh -> dash*
在现在的Ubuntu中,/bin/sh默认是指向dash,不是传统的bash shell。dash是为了执行脚本而出现,并不是为了交互,dash速度更快,但功能较少。语法严格遵守POSIX标准。
这意味着如果用 sh 运行我们写的脚本。会调用dash shell。
我们现在把它修改成默认的bash。
方法一
尝试
$ sudo ln -s /bin/bash /bin/sh
ln: failed to create symbolic link '/bin/sh': File exists
然后,当然也可以直接运行下面的代码,上面代码只是尝试。
$ sudo rm /bin/sh
$ sudo ln -s /bin/bash /bin/sh
然后查看是否成功
$ cd /bin
$ ll
sh -> /bin/bash*
方法二
sudo dpkg-reconfigure dash
这会弹出一个选项卡,把“dash设为默认shell”选择no。 然后查看是否成功。
$ cd /bin
$ ll
sh -> /bin/bash*
这样就把Ubuntu的默认dash shell 修改成了 bash shell。
即使不修改默认shell,也可以用bash 执行 我们的shell文件。
$ bash your_shell_file.sh
另外,需要给shell文件增加执行权限,这个shell文件在自己执行的时候会读取第一行带#号的代码。类似
#!/bin/bash
给文件增加执行权限,如果没有增加成功自己找原因。可能文件所在的文件系统不支持。
$ chmod +x your_shell_file.sh
$ ll
-rwxr-xr-x your your ================== your_shell_file.sh
然后就可以下面这样调用我们的shell
$ ./your_shell_file.sh