把代码封装成脚本是编程的核心目的,多个脚本的集成也是软件开发的基础,这部分内容我们来给大家初步介绍一下shell脚本和变量的概念并给大家演示一些简单的用法。
Shell脚本
Shell脚本是由一系列Shell命令组成的脚本文件,通常用于自动化任务、简化复杂的操作和执行系统管理任务。
#!/bin/bash
# 这是一个简单的Shell脚本
echo "Hello, Shell!"
创建文件:vi script.sh
运行脚本:bash script.sh
输出结果:Hello, Shell!
Shell变量
Shell变量用来存储值,可以是字符串、数字等。
#!/bin/bash
# 定义变量
NAME="Shell"
AGE=25
# 使用变量
echo "Hello, $NAME!"
echo "Age: $AGE"
$
只读变量的值不能被修改:
#!/bin/bash
NAME="Shell"
readonly NAME
NAME="NewName" # 报错:只读变量
可以使用unset
删除变量,但只读变量无法删除:
#!/bin/bash
NAME="Shell"
unset NAME
echo $NAME # 输出为空
Shell变量的类型
PATH
、HOME
等。示例:位置参数变量
#!/bin/bash
echo "第一个参数: $1"
echo "第二个参数: $2"
echo "所有参数: $@"
运行:bash script.sh arg1 arg2
输出:
Shell中的运算
expr
或$((...))
bc
工具(需要安装bc工具,如果不能安装,用awk)#!/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
:小于#!/bin/bash
num=10
if [ $num -gt 5 ]; then
echo "大于 5"
else
echo "小于或等于 5"
fi
=
:等于!=
:不等于-z
:字符串为空#!/bin/bash
str="hello"
if [ $str = "hello" ]; then
echo "字符串匹配"
fi
循环结构
#!/bin/bash
for i in {1..5}; do
echo "数字: $i"
done
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "计数: $count"
count=$((count + 1))
done
#!/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
下期内容
下一节学习“Linux文件压缩与解压”