Shell脚本入门指南(一):脚本创建、执行与变量管理

声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)

1. 引言

Shell脚本是自动化任务和系统管理中非常有用的工具。本文将介绍Shell脚本的基础知识,包括如何创建、执行脚本以及如何在脚本中使用变量。


2. 脚本文件的创建与执行

2.1 脚本文件的后缀和解释器选择

Shell脚本文件通常使用.sh后缀,表示它是一个Shell脚本文件。脚本的解释器决定了脚本的执行环境,不同的解释器支持不同的功能。常见的三种解释器如下:

  1. #!/bin/bash

    • 使用场景:当脚本需要使用Bash特性,如数组、字符串处理等高级功能时使用。
    • 适用:复杂脚本或需要跨平台支持(Linux/macOS)。
  2. #!/bin/dash

    • 使用场景:当脚本只依赖基本的POSIX功能,且对执行速度要求较高时使用。
    • 适用:系统启动脚本或对性能要求高的环境。
  3. #!/bin/sh

    • 使用场景:需要确保脚本能够在任何符合POSIX标准的Shell中运行,避免依赖特定Shell时使用。
    • 适用:简单脚本,要求高兼容性。

简而言之:

  • 如果脚本依赖Bash特性,选择#!/bin/bash
  • 如果追求轻量和性能,选择#!/bin/dash
  • 如果需要最大兼容性,选择#!/bin/sh
2.2 创建脚本文件

首先使用vim或其他文本编辑器创建脚本文件:

vim 1.sh

然后在文件中编写脚本内容,例如:

echo "Hello, world!"

保存并退出编辑器:

  • vim中输入:wq!来保存并退出。
2.3 脚本执行方法

创建脚本文件后,需要赋予执行权限。默认情况下,脚本文件没有执行权限,需要使用以下命令赋予权限:

sudo chmod 777 1.sh

执行方法:
  1. 直接执行: 使用./命令执行脚本:

    ./1.sh

  2. 通过指定解释器执行: 你也可以指定脚本解释器来执行脚本。例如:

    sh 1.sh
    dash 1.sh
    bash 1.sh

    注意:如果脚本文件不在当前路径下,记得指定完整路径或先进入到脚本所在的目录。

  3. 使用source命令执行: source命令会在当前Shell环境中执行脚本,执行时脚本中的命令不会启动新的子Shell:

    source 1.sh

    使用source执行脚本时,如果脚本包含像ls这样的命令,你会发现文件的颜色标注与在命令行直接执行时有所不同,下面是每个文件对应的颜色的表格:


3. Shell脚本中的变量

3.1 变量的声明与定义

在Shell脚本中,变量的定义不需要声明类型。可以直接使用等号赋值

name="momota"

注意:变量赋值时,不要在等号两边加空格,否则会导致错误。

3.2 变量输出

可以使用echo命令来输出变量的值,也可以定义和输出一起:

echo $name # 输出 "momota"
age=27;echo $age # 输出 "27"

输出时,变量值会被替换到$符号的位置。

复杂的输出

你可以将多个变量和文字结合输出:

echo My name is $name and my age is $age years old

也可以使用引号来处理字符串:

  • 双引号(")和单引号(')都会将变量名当作普通字符串,不会解析变量。

    echo "My name is $name and my age is $age years old."

如果需要避免变量之间的空格,使用双引号或花括号:

echo My name is $name and my age is ${age}years old

echo my name is $name and my age is "$age"years old

3.3 查看和删除变量

查看所有定义的变量:

set # 列出所有环境变量

如果你只想查看特定的变量,可以使用grep命令过滤:

set | grep name # 查找所有含有name的变量

删除变量可以使用unset命令:

unset name # 删除name变量

再次使用set | grep name查看,确认该变量已经被删除。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值