首页 > 系统相关 >Shell脚本基础简述

Shell脚本基础简述

时间:2022-10-31 09:55:05浏览次数:36  
标签:脚本 Shell echo 简述 shell 执行 root localhost

一、shell的定义

1.1、shell的基本概念

shell:介于系统内核与用户之间,负责解释命令行

1.2、shell脚本的应用

(1)重复性操作
(2)交互性任务
(3)批量事务处理
(4)服务运行状态监控
(5)定时任务执行

二、shell的格式

2.1、编辑脚本的规则

(1)使用vim文本编辑器

(2)每行一条Linux命令,按执行顺序依次编写

(3)第一行为"#!/bin/bash",脚本申明(默认解释器)∶表示此行以下的代码语句是通过/bin/bash程序来执行。还有其他类型的解释器,比如#!/usr/bin/python#!/usr/bin/expect

(4)注释信息:以"#”开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行可执行语句:如echo命令,用于输出" "之间的字符串。

2.2、脚本的运行方法

指定路径执行(需要有执行权限)

相对或者绝对路径下系统会创建一个子shell环境,并在这个子shell环境中执行这个脚本

当前目录为opt    ./代表本目录使用相对路径执行脚本

                            /opt/my.sh使用绝对路径执行脚本

 

 

指定解释器执行(不需要执行权限)

bash(sh)执行脚本, 系统会创建一个子shell环境,并在这个子shell环境中执行这个脚本 ,脚本执行结束后系统就会自动退出bash环境

 

## 不建议使用source 与 . 执行脚本  会在当前 shell 环境中执行脚本 影响当前环境

2.3、脚本运行的错误

(1)命令错误:命令出错不会影响接下来的命令继续

(2)语法错误:会影响接下来的命令继续

(3)逻辑错误:只能自己去筛查

调试脚本错误

  • 检查语法错误:bash -n 脚本名称 (不在当前目录下加绝对路径)    
  • 检查逻辑错误:bash -x 脚本名称 (不在当前目录下加绝对路径)

三、shell的变量

3.1、shell变量简述

shell变量的作用

(1)用来存放系统和用户需要使用的特定参数(值)
(2)变量名:使用固定的名称,由系统预设或用户定义
(3)变量值:能够根据用户设置、系统环境的变化而变化

shell变量的分类

(1)自定义变量:由用户自己定义、修改和使用
(2)特殊变量:环境变量、只读变量、位置变量、预定义变量

3.2、整数变量的计算

运算符:+ 加法、- 减法、* 乘法、/除法、% 取余

管道符方式

[root@localhost ~]# echo 2+4 |bc
6

expr不可计算小数,并且变量和运算符之间需要空格分隔

[root@localhost ~]# expr 1 + 10
11

整数乘法计算 需要 \转义符

[root@localhost ~]# expr 15 \*  24
360

取余

[root@localhost ~]# expr 19 % 3
1
 
[root@localhost ~]# expr 18 % 3
0

随机数

[root@localhost ~]# expr $[RANDOM % 45 + 1]
27
 
[root@localhost ~]# expr $RANDOM % 12
5l

let

[root@localhost ~]# s=150
[root@localhost ~]# b=100
[root@localhost ~]# z=0;let z=s+b;echo $z
250

i++和++i

[root@localhost ~]# j=1;i=1;let j=i++;echo $j $i
1 2
[root@localhost ~]# j=1;i=1;let j=++i;echo $j $i
2 2

3.3、环境变量

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息。Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的运行环境,通常情况下每个用户的默认的环境都是相同的。这个默认环境就是一组环境变量的定义。每个用户都可以通过修改环境变量的方式对自己的运行环境进行配置。

[root@localhost ~]# echo $USER         查看环境
root
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# echo $BASH
/bin/bash
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

3.4、位置变量

当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

 1 [root@localhost ~]# vim go.sh 
 2  
 3 #!/bin/bash
 4 echo $1
 5 echo $2
 6 echo $3
 7 echo $4
 8 echo $3 + $4
 9 echo $2 + $3
10  
11 [root@localhost ~]# sh go.sh 10 20 30 30
12 10
13 20
14 30
15 30
16  
17 30 + 30
18 20 + 30
19  

3.5、预定义变量

(1)$*、$@:表示命令或脚本要处理的参数。

(2) $*:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4"。

(3) $@:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立 的,代表"$1" "$2" "$3" "$4"。

(4)$0:表示当前执行的脚本或命令的名称。

(5)$#:表示命令或脚本要处理的参数的个数。

(6)$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。也常被用于Shell脚本中return退出函数并返回的退出值。

四、重定向

4.1、交互式硬件设备

(1)标准输入:从该设备接收用户输入的数据
(2)标准输出:通过该设备向用户输出数据
(3)标准错误:通过该设备报告执行出错信息

4.2、重定向操作

 

标签:脚本,Shell,echo,简述,shell,执行,root,localhost
From: https://www.cnblogs.com/zhao222/p/16841662.html

相关文章

  • oracel将excel中的数据根据条件更新到对应的数据中sql脚本
    UPDATECUSTOMERSA--使用别名SET(CITY_NAME,CUSTOMER_TYPE)=(SELECTB.CITY_NAME,B.CUSTOMER_TYPEFROMTMP_CUST_CITYBWHER......
  • 在shell脚本中定位自己的位置
    有时候,出于方便,需要给某些第三方软件编写启动脚本。这些第三方软件可能打包了自己所需要的库,只有通过相对路径才能访问这些库。这就需要在启动脚本中探测软件的根目录,使得......
  • shell之免交互
    一、HereDocument免交互1、概念HereDocument使用I/O重定向的方式将命令列表提供给交互式程序或命令,比如ftp、cat或read命令。是标准输入的一种替代品可以帮助脚......
  • 使用SOUI4的脚本模块
    SOUI4.1提供了全新的lua脚本模块支持,使用这个新版本的脚本模块,可以轻松将所有UI布局及业务逻辑全部使用XML+LUA实现,基本上就是一个超轻型浏览器。SOUI4.0相对于SOUI3最大......
  • shell编程之循环语句 for
    1什么是循环凡是重复执行一段代码,都可以称之为循环。循环体中三种专业的话术:遍历、迭代、递归。遍历(traversal)-按规则访问非线性结构中的每一项。迭代(itera......
  • shell编程之条件语句(条件测试、if语句、case语句)
    要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0......
  • Shell脚本2
    前言shell变量的类型:自定义变量:由用户自己定义,修改和使用环境变量:由系统维护,用于设置工作环境只读变量:只可以读取不可以更改位置变量:通过命令行给脚本传递参数预定......
  • Linux shell编程
    建立文件:第一行#!/bin/bash标识该Shell脚本由哪个Shell解释:#!/bin/bashecho"HelloWorld!"shell中的变量:shell中的变量⑴常用系统变量$#:保存程序......
  • 比Xshell 还好用的 SSH 客户端神器
    个人试用后的确好用界面也还凑合,主要是解决了crt的长连接问题推荐链接:https://mp.weixin.qq.com/s?__biz=MzU2NDc4MjE2Ng==&mid=2247493070&idx=3&sn=531a178d919516a0ef......
  • PowerShell基础
    PowerShell基础目录PowerShell基础1PowerShell简介2基本概念2.1.ps1文件2.2执行策略2.3运行脚本2.4管道3PowerShell常用命令3.1文件操作类命令3.2绕过本地权......