文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>bash编程

bash编程

时间:2010-07-14  来源:cainoma

1. 位置参量和命令行参数
    $0      # 脚本名
    $1      # 第一个命令行参数
    ${10}     # 第十个参数

    $#     # 位置参量个数        
    $@/$*     # 所有的位置参量
    "$*"      # 单个变量(eg:"$1 $2 $3")
    "$@"      # 多个单独的变量(eg:"$1" "$2" "$3")
    $1...${10} # 单独的位置参量
    set命令重置位置参量

2. 条件结构和流程控制
    一 echo $?   查看上一个命令成功与否 0 成功 1 失败
    二 test命令操作符  *注意添加空格
        字符串测试(string:字符串)
        [ string1 = string2 ]    # string1等于string2(=两边必须有空格)
        [ string1 == string2 ]    # string1等于string2
        [ string1 != string2 ]    # string1不等于string2(!=两边必须有空格)
        [ string ]        # string不为空
        [ -z string ]        # string的长度为0
        [ -n string ]        # string的长度不为0
        [ -l string ]        # string的长度(字符数)
                    # eg: test -n $word 或 [-n $word]
                    # eg: test tom = sun 或 [tom = sun]    
        逻辑测试
        [ string1 -a string2 ]    # string1和string2都为真
        [ string1 -o string2 ]    # string1或string2至少一个真
        [ !string1 ]        # 字符串不匹配

        逻辑测试(复合命令;pattern:模式)
        ||:或
        &&:与
        [[ pattern1 && pattern2 ]]    # pattern1 和 pattern2都为真
        [[ pattern1 || pattern2 ]]    # pattern1 或 pattern2至少一个真
        [[ !pattern1 ]]            # 模式不匹配

        整数测试(int:符号整数)
        [ int1 -eq int2 ]        # int1等于int2
        [ int1 -ne int2 ]        # int1不等于int2
        [ int1 -gt int2 ]        # int1大于int2
        [ int1 -ge int2 ]        # int1大于或等于int2
        [ int1 -lt int2 ]        # int1小于int2
        [ int1 -le int2 ]        # int1小于或等于int2

        用于文件测试的二进制操作符
        [ file1 -nt file2 ]    # 如果文件file1比file2新则为真(根据修改时间)
        [ file1 -ot file2 ]    # 如果文件file1比file2老则为真
        [ file1 -ef file2 ]    # 如果文件file1比file2有相同的设备数或i结点数则为真
        范例
    $ name=tom;freind=Joseph    
    $ [[ $name == [Tt]om ]]
    $ echo $?
    0

    $ [[ $name == [Tt]om && $friend == "Jose" ]]    # "Jose"被引号括起来的,则不满足
    $ echo $?                    # 若是Jose 则Jose和Joseph都满足
    1
        
   
    三 let命令和带双圆括号的算术运算
    *  在(())里的变量不需要$

    四 if命令
    格式:
         if   command
         then
              command
              command
         fi
     (使用test命令测试数字和字符串——老格式)
         if  test  表达式
         then
              command
         fi
      ----------
         if   [ 字符串/数字表达式 ] then
              command
         fi
       (使用test命令测试字符串——新格式)
         if   [[ 字符串表达式 ]]   then
              command
         fi
       (使用let命令测试数字——新格式)
         if   ((算术表达式))
   
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载