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

  • .