在我的shell中用到了如下的数学计算,但是执行不成功(ubuntu)
((T=1+1))
echo $T
let OPTIND=OPTIND-1
echo $OPTIND
echo "$[ $OPTIND-1 ]"
经过多方查找原来是shell不同,shell的种类很多,支持的命令也不一定想同。
用以下的指令查看我PC的sh是dash,ubuntu默认shell为dash。
$ type sh
sh 已经被散列 (/bin/sh)
$ ls /bin/sh -al
lrwxrwxrwx 1 root root 4 2010-08-11 01:48 /bin/sh -> dash
但是我写的shell是基于bash的,所以将shell解释器改变一下就ok。
两种方法解决这个问题:
1.修改shell脚本
将shell脚本的顶部的:
#!/bin/sh
修改为:
#!/bin/bash
2.修改PC系统下的sh链接,将链接指定的bash
ln -s /bin/bash /bin/sh
((T=1+1))
echo $T
let OPTIND=OPTIND-1
echo $OPTIND
echo "$[ $OPTIND-1 ]"
经过多方查找原来是shell不同,shell的种类很多,支持的命令也不一定想同。
用以下的指令查看我PC的sh是dash,ubuntu默认shell为dash。
$ type sh
sh 已经被散列 (/bin/sh)
$ ls /bin/sh -al
lrwxrwxrwx 1 root root 4 2010-08-11 01:48 /bin/sh -> dash
但是我写的shell是基于bash的,所以将shell解释器改变一下就ok。
两种方法解决这个问题:
1.修改shell脚本
将shell脚本的顶部的:
#!/bin/sh
修改为:
#!/bin/bash
2.修改PC系统下的sh链接,将链接指定的bash
ln -s /bin/bash /bin/sh