Chinaunix首页 | 论坛 | 博客
  • 博客访问: 384744
  • 博文数量: 102
  • 博客积分: 1395
  • 博客等级: 中尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-05 18:09
文章分类

全部博文(102)

文章存档

2013年(25)

2012年(77)

分类: LINUX

2012-11-09 15:35:34

变量:是shell传递数据的一种方法
shell 有两种变量: 临时变量和永久变量
        临时变量是shell程序内部定义的, 对其他shell程序不可见
        包括:用户自定义变量和位置变量。
        永久变量是环境变量, 其值不随shell脚本的执行的结束而消失
位置变量和特殊变量

ls -l file1 file2 file3

$0 这个程序的文件名字 ls -l
$n 这个程序的第n个参数

$* 这个程序的所有参数    "" 会是整体的
$# 这个程序的参数个数    ""  单个出先可用echo $#查看
$$ 这个程序的PID
$! 执行上一个后台命令的PID
$? 执行上一个命令的返回值

shell的输入输出

read  从键盘读入数据, 赋给变量
echo 输出到标准输出上

shell 变量的算数运算:
expr   对整数变量计算
流控制语句

    until 条件

    do

        命令
    done

    while 条件

    do
        命令
    done

    case 变量 in
     
         字符串1)  命令列表1
            ;;
        字符串2) 命令列表2
            ;;
        *)
            ;;
    esac

    for 变量 in  列表
    do
        命令列表
    done

    for ((; ; ))
    do
        命令列表
    done
       
    if 条件1 ;then
        命令1
    elif 条件2; then
        命令2
    else
        命令3
    fi
    done

    多个条件的联合
    -a : 逻辑与, 仅当两个条件都成立时, 才为真
    -o :逻辑或, 两个条件都为假是, 才为假

    变量测试语句

    test 测试条件
    测试范围: 整数、 字符串 、文件

    整数测试:
     test int1 -eq int2       equal
     test int1 -ge int2    greatr equal
     test int1 -gt int2     greater     than
     test int1 -le int2    less equal
     test int1 -lt int2    less than
     test int1 -ne int2    not equal

     文件测试:
      test -d file  指定的文件是否是目录
      test -f file  指定的文件是否常规文件
      test -x file   指定的文件是否可执行的
      test -r  file  指定的文件是否可读的
      test -w file   指定的文件是否可写的
      test -a file   制定的文件是否存在
      test -s file   指定的文件是否非0

      可用 [  ]  替换test
      注意: 括号两边是有空格的


 sh -x script

这将执行该脚本并显示所有变量的值

sh -n script

不执行脚本只是检查语法的模式, 将返回所有的语法错


shift 指令

参数左移, 没执行一次, 参数顺序左移一个位置, $#的值减1
shift 2 一次左移2个参数
阅读(1056) | 评论(0) | 转发(0) |
0

上一篇:fork问题的经典理解

下一篇:for循环后台

给主人留下些什么吧!~~