【Linux | Shell】构建基础脚本 - 读书笔记


在这里插入图片描述

一、创建第一个Shell脚本

前面得文章介绍过一些基础的 Linux 命令了,这小节将手把手带初学者创建一个 shell 脚本,shell 脚本会将多个命令放在一个文件中,让 shell 依次执行,帮我们完成任务。
shell 脚本的关键是能够输入多个命令并处理每个命令的结果,甚至是将一个命令的结果传给另一个命令。
本节内容:

  • 执行多个命令
  • 创建shell脚本
  • 显示消息——echo命令

1.1 执行多个命令

Linux 系统允许在同一行执行多个命令,彼此用分号;隔开:
例如:

wkd@ubuntu:~$ date ; who
Sun Jul  9 22:07:27 CST 2023
wkd       pts/10       2023-06-30 23:16 (192.168.2.180)
wkd       pts/11       2023-07-03 10:09 (192.168.2.180)
wkd       pts/13       2023-07-03 10:12 (192.168.2.180)
wkd       pts/14       2023-07-03 14:41 (192.168.2.180)
wkd       pts/16       2023-07-06 09:38 (192.168.2.180)
wkd@ubuntu:~$ 

date 命令先运行,显示当前日期和时间,随后是 who 命令的输出,显示当前已登录系统的用户。
通过这种办法,能将任意多个命令串联在一起使用,只要不超过命令行最大字符数 255 就可以。
从shell脚本的定义来看,使用多个命令已经是一个小型的shell脚本了;但必须在命令提示符处输入整个命令。下个小节介绍将这些命令组合成一个简单的文本文件,这样就无须再手动输入了。

1.2 创建 shell 脚本

初学者创建自己的第一个shell脚本文件,可以按照下面四个步骤来操作:

  • 指定使用的shell
  • 在脚本文件各行输入命令
  • 添加执行权限
  • 执行脚本

1.2.1 指定使用的shell

创建一个test.sh的文件,使用文本编辑器编辑该文件。
在创建 shell 脚本文件时,必须在文件的 第一行 指定要使用的 shell,格式是在符号#!后加上shell的绝对路径,如下:

#!/bin/bash

说明:
#后面的惊叹号(#!)会告诉 shell 用哪个 shell 来运行脚本。
#用作注释行,shell 并不会处理 shell 脚本中的注释行

1.2.2 在脚本文件各行输入命令

在指明了 shell 之后,可以在文件的各行输入命令,每行末尾加一个换行符。需要注释的可用#添加,下面是在上一步添加完的脚本:

#!/bin/bash
# This script displays the date and who's logged on
date
who

第一行指明shell;第二行是注释;第三行是date命令,第四行是who命令。

1.2.3 添加执行权限

在编写完脚本后,可以使用ls -l命令去查看脚本是否有执行权限,如果没执行权限的话,需要执行下面命令赋予文件属主执行权限:

chmod u+x test.sh

添加完执行权限后,就到下一步了,执行脚本

1.2.4 执行脚本

脚本有了执行权限后,要执行脚本,就是要让shell可以找到 test.sh 文件,可以采用下列两种方法之一:

  • 将放置 shell 脚本文件的目录添加到 PATH 环境变量中;
  • 在命令行中使用绝对路径或相对路径来引用 shell 脚本文件。

我们这个例子使用第二种方法,可以使用单点号来引用当前目录下的文件:

wkd@ubuntu:~$ ./test.sh 
Sun Jul  9 22:47:29 CST 2023
wkd       pts/10       2023-06-30 23:16 (192.168.2.180)
wkd       pts/11       2023-07-03 10:09 (192.168.2.180)
wkd       pts/13       2023-07-03 10:12 (192.168.2.180)
wkd       pts/14       2023-07-03 14:41 (192.168.2.180)
wkd       pts/16       2023-07-06 09:38 (192.168.2.180)
wkd@ubuntu:~$ 

至此,第一个Shell脚本就创建完成并执行完成了。

1.3 显示消息——echo命令

在 echo 命令后面加上字符串,那么 echo 命令就会显示出这个字符串:

wkd@ubuntu:~$ echo This is a test
This is a test
wkd@ubuntu:~$

echo 命令可用单引号或双引号来划定字符串。如果你在字符串中要用到某种引号,可以使用另一种引号来划定字符串:

wkd@ubuntu:~$ echo "This is a test to see if you're paying attention"
This is a test to see if you're paying attention
wkd@ubuntu:~$ echo 'Rich says "scripting is easy".'
Rich says "scripting is easy".
$

-n 选项可以把字符串和命令输出显示在同一行中:

wkd@ubuntu:~$ echo -n "The time and date are: " ; date
The time and date are: Sun Jul  9 22:57:58 CST 2023
wkd@ubuntu:~$ 

在这里插入图片描述

二、使用变量

2.1

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wkd_007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值