前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >超实用!带你搞懂Shell脚本与变量的正确打开方式

超实用!带你搞懂Shell脚本与变量的正确打开方式

作者头像
天意生信云
发布2025-01-22 08:02:06
发布2025-01-22 08:02:06
9400
代码可运行
举报
运行总次数:0
代码可运行

把代码封装成脚本是编程的核心目的,多个脚本的集成也是软件开发的基础,这部分内容我们来给大家初步介绍一下shell脚本和变量的概念并给大家演示一些简单的用法。

Shell脚本

1️⃣ 什么是Shell脚本?

Shell脚本是由一系列Shell命令组成的脚本文件,通常用于自动化任务、简化复杂的操作和执行系统管理任务。

  • 特点
    • 可重复使用
    • 灵活,适用于多种系统任务
    • 可结合条件语句、循环等实现复杂逻辑
2️⃣ 创建第一个Shell脚本
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash
# 这是一个简单的Shell脚本

echo "Hello, Shell!"
  • 步骤
代码语言:javascript
代码运行次数:0
复制
创建文件:vi script.sh
运行脚本:bash script.sh
代码语言:javascript
代码运行次数:0
复制
输出结果:Hello, Shell!
代码语言:javascript
代码运行次数:0
复制

Shell变量

📌 定义变量

Shell变量用来存储值,可以是字符串、数字等。

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

# 定义变量
NAME="Shell"
AGE=25

# 使用变量
echo "Hello, $NAME!"
echo "Age: $AGE"
  • 注意
    • 变量名不允许有空格或特殊符号
    • 使用变量时加上$
📌 只读变量
代码语言:javascript
代码运行次数:0
复制
只读变量的值不能被修改:

#!/bin/bash

NAME="Shell"
readonly NAME
NAME="NewName"  # 报错:只读变量
📌 删除变量

可以使用unset删除变量,但只读变量无法删除:

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

NAME="Shell"
unset NAME
echo $NAME  # 输出为空
代码语言:javascript
代码运行次数:0
复制

Shell变量的类型

  1. 本地变量:脚本或命令内部定义,无法被子进程访问。
  2. 环境变量:可以被子进程继承,如PATHHOME等。
  3. 位置参数变量:通过脚本参数传递的变量。

示例:位置参数变量

代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

echo "第一个参数: $1"
echo "第二个参数: $2"
echo "所有参数: $@"
代码语言:javascript
代码运行次数:0
复制

运行:bash script.sh arg1 arg2

输出:

Shell中的运算

  • 整数运算:用expr$((...))
  • 浮点运算:用bc工具(需要安装bc工具,如果不能安装,用awk)
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash


# 整数运算
a=5
b=3
sum=$((a + b))
echo "整数加法: $sum"

# 浮点运算
result=$(awk 'BEGIN {print 3.5 * 2.1}')
echo "浮点数运算: $result"

条件判断

条件判断用于根据输入或状态决定下一步动作。

📌 数字比较
  • -eq:等于
  • -ne:不等于
  • -gt:大于
  • -lt:小于
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

num=10
if [ $num -gt 5 ]; then
  echo "大于 5"
else
  echo "小于或等于 5"
fi
📌 字符串比较
  • =:等于
  • !=:不等于
  • -z:字符串为空
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

str="hello"
if [ $str = "hello" ]; then
  echo "字符串匹配"
fi

循环结构

  • for循环
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

for i in {1..5}; do
  echo "数字: $i"
done
  • while循环
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

count=1
while [ $count -le 5 ]; do
  echo "计数: $count"
  count=$((count + 1))
done
示例:自动备份脚本
代码语言:javascript
代码运行次数:0
复制
#!/bin/bash

# 自动备份脚本
SOURCE_DIR="/path/to/source"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d)

if [ -d "$SOURCE_DIR" ]; then
  cp -r $SOURCE_DIR $BACKUP_DIR/backup_$DATE
  echo "备份完成:$BACKUP_DIR/backup_$DATE"
else
  echo "源目录不存在!"
fi

运行:bash /backup.sh

总结
  • Shell脚本强大而灵活,适合处理系统管理和自动化任务。
  • 掌握变量、条件判断、循环是学习Shell的关键。
  • 多动手实践,编写自己的自动化脚本!

下期内容

下一节学习“Linux文件压缩与解压”

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BioOmics 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1️⃣ 什么是Shell脚本?
  • 2️⃣ 创建第一个Shell脚本
    • 📌 定义变量
    • 📌 只读变量
    • 📌 删除变量
    • 📌 数字比较
    • 📌 字符串比较
  • 示例:自动备份脚本
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档