zoukankan      html  css  js  c++  java
  • 构建基本脚本

    #执行多个命令(;隔开)
        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 $?     -- 查看退出状态码
                    
            
    生活就要逢山开路遇水搭桥,愿共勉!
  • 相关阅读:
    在蓝鲸标准运维上进行原子开发二
    python 使用eval报错NameError: name ‘null’ is not defined
    前端时间转换 2019-08-18T16:00:00.000Z 转换成格式2019-08-18
    python list排序
    Django 分页Paginator的简单用法
    蓝鲸ESB自定义组件的部署步骤
    Unity对象池的实现
    Unity3D UGUI实现Toast
    C#中扩展方法的使用
    Unity3D实现多语言切换
  • 原文地址:https://www.cnblogs.com/TianMu/p/11199455.html
Copyright © 2011-2022 走看看