SHELL脚本就那么回事

66 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

前言

  • 我们平时开发的程序都可以称之为脚本。只不过现在主流称之为脚本的大家第一想到的是SHELL,PYTHON等语言实现的功能。
  • 因为像SHELL这种语言是LINUX系统自带的。大多数会被运维使用,用来开发运维服务的快捷脚本。

初始SHELL

  • shell脚本的标识即使#!/bin/bash 。有的时候我们看到脚本里并没有这一行,这里注意下就行,正规的脚本是应该带有这个头部信息的。

  • 正常我们的脚本文件是.sh结尾的文件,当我们编写好文件后并不会立刻就执行的。这个时候我们还需要给我们的脚本文件授权。


chmod +x first.sh

  • 这样我们的脚本就可以执行了,这里赋予的权限不要太大。毕竟权限打了容易出事。

数值计算


$(($operand+$number))

  • 通过如下格式我们能够实现数值的加法计算。除此之外我们还可以通过expr $a + $b这种通用形式。

预测

  • 有的时候我们想在某种条件的基础上在执行我们的脚本,大家一定第一反应就是if 。这里有的简单的写法。

cmd || xxx.sh

  • 上述表示当cmd命令出错时,才会执行xxx.sh脚本。与之对应的还有 &&

变量传递

  • 0 0 ~ n 用于表示我们脚本接收的参数。1表示我们接收的第一个,1表示我们接收的第一个,2就是第二个以此类推
  • $0用来表示脚本的名称。

Shell 变量的命名规范和大部分编程语言都一样:

  • 变量名由数字、字母、下划线组成;
  • 必须以字母或者下划线开头;
  • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。

变量作用域

  • 运行shell时,会同时存在三种变量:
    1) 局部变量\
  • 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
    2) 环境变量\
  • 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
    3) shell变量\
  • shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行