构建基本脚本

#执行多个命令(;隔开)
    date;who -- 当前时间,谁登陆了系统
#创建shell脚本(文件名.sh,文本中通过#注释行)
    sh ly_sw_cs.sh
#终端打印(echo,如果文件中出现引号需要用另一种引号来区分)
    echo ok
    echo "o'k"
    echo 'o"k'
    echo -n "ok " -- 同行显示。需要加引号并保证末尾至少有一个空格(便于区分)
    !注意:bash不会对echo中单引号的内容求值、不能识别双引号中的(!)
#使用变量($,可使用转义\显示$,变量区分大小写)
    环境变量
    用户变量(
        命名:字母、数字或下划线组成的文本字符串;
        赋值:变量、等号和值之间不能出现空格)
        echo "this is an apple $hello" -- 使用双引号或不使用才能识别环境变量$hello
        echo $ok;ok=$hello    -- 创建用户变量ok,将变量hello的值赋给ok
    命令替换 —— $()
        today=$(date +%y%m%d)    --  +%y%m%d 格式告诉 date 命令将日期显示为两位数的年月日的组合
        ls -al > log.$today    -- 常用。文件log.$today根据脚本运行时间改变,如log.190429
#重定向输入输出(格式:命令 符号 文件)
    输出重定向(>)(>>追加数据,注意使用cat追加换行退出)
    输入重定向(<)(<<内联输入重定向)
        wc < ly_sw_cs -- 统计文件的行数、单词数、字节数
        wc << EOF
        > test string 1
        > test string 2
        > test string 3
        > EOF  -- 统计输入的字符串,开头自定义文本标记EOF与结尾一致
#管道(|)
    rpm -qa | sort | more -- rpm -qa 显示软件安装包列表,然后通过管道执行sort排序,再通过管道执行more分页显示    
#执行数学运算
    expr
        expr 1 + 2   -- 3
        expr 5 \* 6  -- 30,需要对*转义
        expr 5 / 2     -- 2,除法运算会保留整数部分
    $[数学表达式]     
        echo $sw_cs
        sw_cs=$[1 * 6]
        echo $sw_cs  -- 6
    整数运算解决方式:bash计算器(bc)
        bc -q  -- -q 命令行选项可以不显示bash计算器冗长的欢迎信息
        bc -q
            var1=10
            var1 * 4
            40
            scale = 4  -- scale默认是0,保留4位
            var2 = var1 / 5.2            
            print var2
            1.9230
            quit  -- quit退出bash计算器
      在脚本中使用bc(variable=$(echo "options; expression" | bc))
            echo $var1
            var1=$(echo "scale=4; 3.44 / 5" | bc)
        echo The answer is $var1
        variable=$(bc << EOF
            options
            statements
            expressions
            EOF
            )  -- 脚本中使用,bc支持内联重定向
#退出脚本(变量$?)
    退出脚本状态码为0表示命令成功退出,其他整数表示失败退出。
    默认情况下,shell脚本会以脚本中的最后一个命令的退出状态码退出(略,退出状态码可以更改)
        echo $?     -- 查看退出状态码
                
        

 

上一篇:3. Java NIO之Selector如何实现(一)


下一篇:变量的缓存机制