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


    浅析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}
  • 相关阅读:
    day30---内置函数
    day30---绑定方法与非绑定方法
    元类以及属性查找
    python 内置方法/魔法方法
    python 面向对象高级-反射机制
    centos7下jenkins升级
    屏蔽百度右侧热搜
    centos7部署汉化版gitlab
    CentOS 7 安装 Jenkins
    centos7安装与配置ansible
  • 原文地址:https://www.cnblogs.com/timssd/p/4614996.html
Copyright © 2020-2023  润新知