- [ √] 技术前提: Linux 和 Vim 编辑器基础
高级 Bash 脚本编程指南_Linux - 蓝桥云课 https://www.lanqiao.cn/courses/944
Bash 之 Hello World
vim hello.sh
使用 vim 编辑 hello.sh,输入如下代码并保存:
#!/bin/bash
# This is a comment
echo Hello World
运行 Bash 脚本的方式:
# 使用shell来执行
sh hello.sh
# 使用bash来执行
bash hello.sh
# 使用.来执行
. ./hello.sh
# 使用source来执行
source hello.sh
# 还可以赋予脚本所有者执行权限,允许该用户执行该脚本
chmod u+rx hello.sh
./hello.sh
使用重定向
比如我们想要保存刚刚的 hello world 为一个文本,那么该怎么办呢?
这个符号是重定向,执行以下代码,就会在当前目录下生成一个 my.txt。打开看看有没有 hello world
#!/bin/bash
echo "Hello World" > my.txt
使用脚本清除 /var/log 下的 log 文件
首先我们看一看 /var/log/dpkg.log 里面有啥东西。
cat /var/log/dpkg.log
这个文件中记录了我们使用 apt 安装的软件包的一些信息,现在我们需要写一个脚本把里面的东西清空,但是保留文件。
vim cleanlogs.sh
说明:
/dev/null 这个东西可以理解为一个黑洞,里面是空的(可以用 cat 命令看一看)。
#!/bin/bash
# 初始化一个变量
LOG_DIR=/var/log
cd $LOG_DIR
cat /dev/null > dpkg.log
echo "Logs cleaned up."
exit
运行脚本前,先使用
sudo chmod +x cleanlogs.sh
授予脚本执行权限,然后再看看 /var/log/dpkg.log 文件内是否有内容。运行此脚本后,文件的内容将被清除。
执行:
由于脚本中含有对系统日志文件内容的清除操作,这要求要有管理员权限.不然会报 permission denied 错误。使用 sudo 命令调用管理员权限才能执行成功:
sudo ./cleanlogs.sh
挑战:简单的热身
挑战规则:
- 仔细阅读题目描述,在实验环境中完成任务
- 完成任务后点击步骤右下角的提交检测按钮
- 系统自动评测并给出是否通过的信息
步骤一
新建一个 test.sh 输出 Hello Shiyanlou!
#!/bin/bash
echo "Hello Shiyanlou!"
步骤二
复制 test.sh 为 test2.sh
cp test.sh test2.sh
修改 test2.sh 实现将 Hello Shiyanlou 保存为 my.txt 文本
#!/bin/bash
echo "Hello Shiyanlou!" > my.txt
步骤三
新建一个 cleantest.sh 脚本运行实现清空 test.sh 里的内容
#!/bin/bash
cat /dev/null > test.sh