您的位置:首页 > 其它

浅析busybox-1.12.0中ash的脚本命令局限性

2015-07-02 01:29 253 查看
浅析busybox-1.12.0中ash的脚本命令局限性

LUTHER=

表示将LUTHER清空,将其变为null

echo ${LUTHER:-111}如果执行该句之前LUTHER变量不存在,那么显示111,否则显示$LUTHER

echo ${LUTHER:=111}如果执行该句之前LUTHER变量不存在,那么显示111,同时将111赋值给LUTHER,就此创建变量LUTHER变量,否则显示$LUTHER

echo ${LUTHER:+111}如果执行该句之前LUTHER变量不存在,那么显示null空,否则显示111

1.不支持[[ ]]和(( ))条件判断,支持最平常的[ ]判断,[[]]是从bash2.02开始引入的

if [[ $1 >= $2 ]]; then

if [[ 1 >= 2 ]]; then

2.不支持数组

3.支持字符串扩展b={$a,"1 2 3 4","a b c d"}必须用逗号隔开

4.支持命令块{ echo 'a'; echo 'b'; }

5.子shell中执行的命令块(echo 'a'; echo 'b')

6.busybox函数返回数值$?可以支持到2G即2147483647,而在pc上$?最大为255

7.busybox有$RANDOM系统变量,没有$SECONDS变量

8.不支持exec 9<&0
9.对于数字操作只能使用expr,不能使用let,也不能使用(())双括号

    expr [数字] [操作符] [数字]

下面是有效的算术操作符:

    +   两个整数相加

    -   第一个数减去第二个数

    *   两整数相乘

    /   第一个整数除以第二个整数

    %   两整数相除,取余数

10.支持getopts,$OPTARG和$OPTIND

11.${*:2},${@:2}和${*:2:3}等参数提取方式不支持
12.不支持${string:position}...${string/substring/replacement}等字符串操作
13.支持${#string}字符串长度提取和${string#substring}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: