一般情况下,在ARM开发板中都会有sh,这是随busybox携带的脚本工具。如果想将shell脚本在ARM目标机中运行,则需要把脚本第一行的#!/bin/bash改为#!/bin/sh。但这样虽然可以执行脚本,但是脚本中的许多语法是不支持的,例如:
1、判断: if [ -d /usr ] ; if [ -b /dev/sda1 ]
2、数值运算:sum=$[$val1+$val2]
3、逻辑运算:and=$[ $val1 & $val2 ]
解决方法就是将bash移植到目标板
移植环境: EC20 OPEN开发板
1 下载bash源码
地址:http://www.gnu.org/software/bash/bash.html
2 解压
将下载的bash压缩包解压,命令:
$ mkdir /home/hui.zhang/w/tmp/shell/ # 创建bash工作目录 $ cp bash-4.3.tar.gz /home/hui.zhang/w/tmp/shell/ # 复制安装包 $ cd /home/hui.zhang/w/tmp/shell/ # 进入/home/veryarm/bash目录 $ tar zxvf bash-4.3.tar.gz # 解压
3、配置
编译之前,已运行环境配置脚本,然后进行配置,命令:
$ mkdir install # 创建安装目录 $ cd bash-4.3# 进入目录 $ ./configure --prefix=/home/share/xiatao/Platform_Code_A04Ver/ql-ol-sdk/ql-ol-extsdk/example/install --host=arm-linux
--prefix:指定安装目录
--host:运行在的主机环境
4 编译
编译并安装:
$ make & make install
5 复制到目标板
安装成功后在安装路径/home/hui.zhang/w/tmp/shell/istall下生成两个目录
bin 和 share,将bin中的 bash 可执行文件复制至开发板 /bin 中,并修改执行权限:
root@k200:/ #cp bash /bin
root@k200:/ #chmod +x /bin/bash
6 测试
在开发板中运行bash
root@k200:/ #bash
bash-4.3#