首页 > 其他分享 >哈哈哈哈哈哈

哈哈哈哈哈哈

时间:2022-09-27 11:14:41浏览次数:43  
标签:脚本 shell 变量 哈哈哈 实操 执行 bash

shell 脚本入门

1)脚本格式

  脚本以#!/bin/bash开头  (指定解析器)

2)第一个shell脚本:helloworld.sh

(1)需求:创建一个 Shell 脚本,输出 helloworld (2)案例实操:

(3)脚本的常用执行方式

第一种:采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)

第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)

注意:第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行 权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。 【了解】第三种:在脚本的路径前加上“.”或者 source ①有以下脚本 ②分别使用 sh,bash,./ 和 . 的方式来执行,结果如下:

 

 原因:

前两种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。

第三种,也就是使用在脚本路径前加“.”或者 source 的方式,可以使脚本内容在当前shell里执行,而无需打开子shell!这也是为什么我们每次要修改完/ect/profile文件以后,需要source一下的原因。

开子shell与不开子shell的区别就在于环境变量的继承关系,如在子shell中设置的当前变量,父shell是不可见的。

变量

1.1 系统预定义变量

1)常用系统变量

$HOME、$PWD、$SHELL、$USER 等

2)案例实操

(1)查看系统变量的值

 

 

 (2)显示当前shell中所有变量:set

 

 1.2 自定义变量

1)基本语法

  (1)定义变量:变量名=变量值,注意,=号前后不能有空格

  (2)撤销变量:unset 变量名

  (3)声明静态变量:readonly 变量,注意:不能unset

2)变量定义规则

  (1)变量名称可以由字母、数字和下划线组成,但不能以数字开头,环境变量名建议大写。

  (2)等号两侧不能由空格

  (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。

  (4)变量的值如果有空格,需要使用双引号或单引号括起来。

3)案例实操

(1)定义变量A

 

 (2)给变量A重新赋值

 

 (3)撤销变量A

 

 (4)声明静态变量B=2,不能unset。

 

 (5)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算

 

 (6)变量的值如果有空格,需要使用双引号或单引号括起来

 

 (7)可把变量提升为全局环境变量,可使其他shell程序使用

 

 

发现并没有打印输出变量 B 的值。

 

 1.2 特殊变量

1.2.1 $n 

1)基本语法

  $n  (功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})

2)案例实操

 

 1.3 $#

  $#  (功能描述:获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性)。

2)案例实操

 

 

 

 1.4 $*、$@

1)基本语法

  $*    (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

  $@  (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

2)案例实操

 

 1.5 $?

1)基本语法

  $?  (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个参数,由命令自己来决定),则证明上一个命令执行不正确了。)

2)案例实操

判断helloworld.sh 脚本是否正确执行

 

运算符

1)基本语法

“$((运算式))” 或 “[运算式]”

2)案例实操

计算(2+3)* 2 的值

 

 条件判断

1)基本语法

(1)test condition   (2)[ condition ](注意 condition 前后要有空格) 注意:条件非空即为 true,[ atguigu ]返回 true,[ ] 返回 false。

2)常用判断条件

(1)两个整数之间比较

   -eq 等于 (equal)  -ne 不等于 (not equal)

      -lt 小于  (less than)   -le 小于等于  (less  equal)

     -gt 大于   (greater than)   -ge  大于等于  (greater equal)

注:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。

(2)按照文件权限进行判断

  -r  有读的权限(read)

  -w  有写的权限(write)

  -x  有执行的权限(execute)

(3)按照文件类型进行判断

  -e  文件存在(existence)

  -f  文件存在并且是一个常规的文件(file)

  -d  文件存在并且是一个目录(directory)

 

标签:脚本,shell,变量,哈哈哈,实操,执行,bash
From: https://www.cnblogs.com/xiaofan7788/p/16733825.html

相关文章