zoukankan      html  css  js  c++  java
  • Shell脚本笔记(一)一些零碎的基础知识

    一些零碎的基础知识

    一、认识Shell脚本

    一)相关概念

    Shell是一种命令解释器,作用是按次序执行(遇到子脚本,先执行子脚本的命令)用户输入的命令和程序。

    Shell脚本语言是弱类型语言,与其他脚本语言相比的优势是可以处理偏操作系统底层的业务。

    查看系统默认Shell:

    #方法一:
    echo $SHELL
    #方法二:
    grep root /etc/passwd

    二)开发规范

    1)脚本第一行指定解释器

    #!/bin/bash 

    2)开头添加版本、版权等信息

    3)脚本中尽量不要用中文

    4)扩展名为.sh

    5)脚本应放在固定路径下

    三)执行方法

    1)bash script-name或者sh script-name: 脚本没有x权限或者脚本开头没有指定解释器时,可用此方法,此方法也是常见的方法。

    2)path/script-name:当前路径下执行脚本,脚本要有x权限。

    3)source script-name 或者 . script-name:在当前shell中直接运行脚本(其他方式会开启新的shell),因此可将该脚本中的变量或者函数传递到当前shell中。

    四)重定向和管道

    1)输出重定向

    将命令的输出发送到一个文件中(每次都会新创建文件):

    ls -al > list.txt

    如果不想每次都新建文件,可以追加:

    date >> list.txt

    2)输入重定向

    将文件内容发送给命令,当做相关参数:

    ls -al < in.txt

    内联输入重定向:

    无需文件中的数据,将标记中的数据重定向给命令,其语法格式为:

    command << MARKER
    data
    MARKER

    3)管道

    使用管道将一个命令的输出当做另一个命令的输入,其语法格式为:

    command1 | command2

    五)脚本调试

    1)用bash命令参数调试

    sh [-nvx] script.sh

    -n:不执行脚本,仅检查脚本语法,并给出错误提示

    -v:执行脚本前,先将脚本内容输出到屏幕上,并给出错误提示

    -x:将脚本内容及输出显示到屏幕上,逐行追踪脚本执行

    2)使用set命令进行调试

    与bash命令相比set命令可以控制追踪范围

    set -n:读命令但不执行

    set -v:显示读取的所有行

    set -x:显示所有的命令及其参数

    # !/bin/bash
    echo 1
    set -x         #开启脚本调试
    echo 2
    echo 3
    echo 4
    set +x         #关闭脚本调试
    exit 0

    运行结果:

    1
    + echo 2
    2
    + echo 3
    3
    + echo 4
    4
    + set +x

    六)其他

    执行多个命令:

    放在同一行用分号隔开

    ls ; date ; who

    命令替换:

    从命令输出中提取信息,并将其赋值给变量。

    方法一:

    d=$(date)

    方法二:

    d=`date`
    Simple is important!
  • 相关阅读:
    Prometheus 基于文件的服务发现
    Prometheus 标签使用示例整合
    Prometheus 重新标签
    Prometheus 配置采集目标
    Prometheus 配置文件详解
    Prometheus 安装部署
    Prometheus 介绍详解
    Python urlib 模块
    ArcGIS Python编程案例-电子资料链接
    如何查看Python对象的属性
  • 原文地址:https://www.cnblogs.com/Shadowplay/p/8309717.html
Copyright © 2011-2022 走看看