shell脚本declare关键字not found问题

Wed Jun 10 17:15:53 CST 2015 891 Linux

文章摘要linux系统里写shell脚本,可能会遇到这样的问题:declare关键字not found问题

写了如下脚本test.sh

#!/bin/sh
declare -i sum=1+1
echo "sum is $sum"

在终端中执行 sh test.sh命令结果提示:

declare: not found

可能原因:shell不同,不支持declare语法

可通过ls -l /bin/sh命令来查看默认的shell:

chenzuhuang@chenzuhuang-Aspire-V3-571G:$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 10月 19  2014 /bin/sh -> dash

发现默认的shell竟然不是bash,而是dash。而用sh命令执行shell脚本只是一个到实际使用中的shell的链接,也就是我这里执行sh test.sh默认使用的shell是dash,相当于dash test.sh而不是bash test.sh,而dash不支持declare.


如何才能把bash作为默认的shell呢?

执行命令

sudo dpkg-reconfigure dash

 此命令是对已安装的包进行重新配置,在菜单中选择是否将 sh 链接到 dash (Install dash as /bin/sh?) 选择即可。


打赏
打赏

分享到: