今天遇到个错误:
zc@zc-HP-242-G1-Notebook-PC:~$ ./1.sh
1.sh: 7: 1.sh: let: not found
查了一下,发现是因为/bin/sh默认的软连接是dash,不是bash,我们可以通过下面的命令在/bin目录下看见这个:
zc@zc-HP-242-G1-Notebook-PC:/bin$ ll sh
lrwxrwxrwx 1 root root 4 Aug 23 2014 sh -> dash*
我们直接bash 1.sh
就可以了。
当然想永远解决的我们有两种方法解决:
- 我们可以通过
chsh
命令进行改变,chsh
可以改变目前用户的shell类型。
zc@zc-HP-242-G1-Notebook-PC:/bin$ chsh
密码:
正在更改 zc 的 shell
请输入新值,或直接敲回车键以使用默认值
登录 Shell [/bin/bash]:
我这里直接是我想要的,所以敲回车即可。如果不是/bin/bash,你就写这个路径就行啦。但是这个命令有一个缺点:
zc@zc-HP-242-G1-Notebook-PC:~$ ./1.sh
count = 2
zc@zc-HP-242-G1-Notebook-PC:~$ sh 1.sh
1.sh: 7: 1.sh: let: not found
count = 1
大家不用关心这个输出是什么…但是我们看到了用.是成功了,用sh还是let: not found
。
- 第二个方法是改变/bin/sh的连接。输入命令
sudo ln -sf /bin/bash /bin/sh
,然后输入ll /bin/sh
,可以看到下面的情况。
zc@zc-HP-242-G1-Notebook-PC:~$ sudo ln -sf /bin/bash /bin/sh
zc@zc-HP-242-G1-Notebook-PC:~$ ll /bin/sh
lrwxrwxrwx 1 root root 9 Oct 19 12:05 /bin/sh -> /bin/bash*
这次就算是解决了。
zc@zc-HP-242-G1-Notebook-PC:~$ sh 1.sh
count = 2
zc@zc-HP-242-G1-Notebook-PC:~$ ./1.sh
count = 2