0%

shell脚本编程实现

shell脚本编程实现

根据其编程过程中调用库还是调用外部的程序文件

  • shell脚本编程

    ​ 利用系统上的命令及编程组件进行编程

  • 完整编程

    ​ 利用库或编程组件进行编程

shell脚本编程:过程式编程,解释运行,依赖于外部程序文件运行

如何写shell脚本

  • 第一行顶格写shebang,解释器路径,用于指明解释执行当前脚本的解释器程序文件如

    • #!/bin/bash
    • #!/usr/bin/python
    • #!/usr/bin/perl

    Notes:

    ​ 所以xx.sh其实是一个文本文件,运行这个文件真正的过程是内核读取了文件前面的内容,并用bash去运行文本里的内容。所以当bash xx.sh时,xx.sh并不需要+x权限。

    ​ 脚本中的空白行和#开头的行都会被忽略,除了shebang.

  • 文本编辑器

    • 行编辑器:sed
    • 全屏幕编辑器:nano ,vi,vim
  • bash的配置文件

    • profile类:为交互式登录的shell提供配置,交互式:通过某终端输入账号密码登录打开的shell;通过su - username或 su -l username打开的终端;

      ​ 全局:对所有用户都生效;

      ​ /etc/profile

      ​ /etc/profile.d/*.sh

      ​ 局部:对单个用户生效

      ​ ~/.bash_profile

      ​ 功用:

      ​ 用于定义环境变脸

      ​ 运行命令或脚本

    • bashrc类:为非交互式登录的shell提供配置,非交互式:su username;在图形界面打开的终端;运行脚本的时候的子shell;

      ​ 全局:

      ​ /etc/bashrc

      ​ 用户个人:

      ​ ~/.bashrc

      ​ 功用:

      ​ 定义本地变量

      ​ 定义命令别名

      ​ 交互式登录shell进程:
      ​ /etc/profile—->>/etc/profile.d/*——->/.bash_proflie——>/.bashrc——>/etc/bashrc

      ​ 非交互的shell:

      ​ ~/.bashrc——>/etc/bashrc——>/etc/profile.d/*

  • 命令行定义的特性,在当前shell有效

  • 配置文件定义的特性,在下一次有效

    • 通过命令行重新定义一次
    • 重新加载一次配置文件
      • source
      • .