shell脚本

1、命令解释器

内核与用户之间的交互

 

负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

/etc/shells可以查看当前系统支持的shell脚本类型

2、编程规范

指定解释器的类型

例:

 说明

例:

 然后再写命令

编写好一个shell脚本first.sh后是无法直接通过./first.sh来执行的,没有X权限

但是可以通过指定某个shell来解释脚本语句,或者通过内部命令source(或点号”.”)来加载文件中的源代码执行。

 执行

3、shell中常用的操作

(1)搭配管道符操作

 其中$代表以/bin/bash结尾的 以某个字段开头可以"^root"

 awk -F: 是指以:分隔,没有这个参数则是默认的以空格分隔

(2)搭配重定向操作

举例:

 创建用户并设置密码

 

-stdin

标准输入

 

可将输出内容输出到空文件 /dev/null (黑洞文件)中

就不会提示

 

4、脚本变量

常见shell变量的类型包括自定义变量、环境变量、位置变量、预定义变量。

set查看定义的变量

unset 取消变量

readonly 变量名 设置只读变量,unset不能删除只读变量

 

定义新的变量并查看

 如果除了输出变量还要输出其他内容可用"{}"将变量括起来

 如果不加{}则会认为是abchaha这个变量

(1)赋值变量特殊操作

(a)""双引号

界定字符串,特别是内容中有空格的时候

(b)''单引号

单引号中,任何字符均作为普通字符看待

如单引号中要加单引号需要使用转义符

(c)``反撇号

一般在反撇号中写要执行的命令

 命令嵌套可使用$()

(d)read命令

用于变量赋值

为多个变量赋值

 如果只有一个变量则将整行内容赋值给这个变量

-p 显示提示信息 -t 持续多久时间

(2)变量的作用范围

默认情况下,新定义的变量只在当前的shell环境中有效,因此称为局部变量。当进入子程序或新的子shell环境时,局部变量将无法再使用。

 全局变量定义:

(3)数值变量的运算

 

 

 注意:运算符前后要加空格

2**3 :2的3次方

5、特殊变量

(1)环境变量

env查看当前工作环境下的环境变量

PATH="$PATH:/root"添加环境变量

环境变量的全局文件为/etc/profile

每个用户单独的配置文件在~/.bash_profile中

(2)位置变量

例:

 

(3)预定义变量

 例:

#!/bin/bash

#

T=date "+%Y%m%d-%H%M"

TARFILE=beifen-${T}.tgz

tar zcf $TARFILE $* &>/dev/null

echo "已执行$0脚本"

echo "共完成$#个对象的备份"

echo "具体内容包括:$*"

时间命令:date

date +%F" "%T

 date +%Y%m%d

 

原文地址:https://www.cnblogs.com/zhuyunlong/p/11923320.html