Shell 基础

一、操作题

1、复习一下B站交互全过程

2、shell 如何声明变量?使用变量?

1
2
3
4
5
6
7
# 声明变量
name="Tony"
age=24

# 使用变量
echo $name
echo "年龄: ${age}"

3、shell 能做什么?

  • 系统管理(用户/权限/服务管理)
  • 文件操作(创建/复制/删除/查找)
  • 任务自动化(定时脚本/批处理)
  • 文本处理(日志分析/数据提取)
  • 程序部署(环境配置/服务启停)
  • 网络操作(API调用/数据传输)

4、shell中$*和$@是什么?它的区别是什么?

  • $\*:将所有位置参数视为一个字符串,用空格连接
  • $@:将每个位置参数视为独立的字符串,保留原始分隔。

5、用户输入 .test.sh tony 24 ,可以在终端打印我是 tony,今年24岁

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

# 检查参数个数
if [ $# -ne 2 ]; then
echo "用法: $0 <姓名> <年龄>"
exit 1
fi

name=$1
age=$2

echo "我是 $name,今年${age}岁"

6、用户输入 ./test.sh log 我是日志内容可以自动生成一个log.txt文件,并且内容是 “我是日志内容”,通过这个方式可以输出内容,并创建文件

1
echo "我是日志内容" > log.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash

if [ "$1" = "log" ]; then
if [ $# -lt 2 ]; then
echo "错误:缺少日志内容"
exit 1
fi
# 从第2个参数开始拼接(支持带空格的内容)
shift # 移除第一个参数 "log"
echo "$*" > log.txt
echo "日志已写入 log.txt"
else
echo "用法: $0 log <日志内容>"
exit 1
fi

三、 进阶题

  1. 从我b站交互全过程中得到启发,研究一下boss直聘中如何自动搜索岗位、自动提交简历、或者自动给人事发送打招呼语。