📅  最后修改于: 2023-12-03 15:13:37.920000             🧑  作者: Mango
Bash 是Linux 上最常用的一个 Shell ,它是源自于 Bourne Shell(Bash) 的一种 Shell脚本语言。 Bash 脚本可以用来自动执行一些任务,例如,批量操作文件、定时运行任务、备份和恢复等。在这篇文章中,我们将带领你了解 Bash 脚本,包括 Bash 脚本语法、示例代码和应用案例。
Bash 脚本语法非常简单,主要包括以下几个方面:
在 Bash 脚本中,单行注释以 # 开头,多行注释使用以下语法:
: '
多行注释
多行注释
多行注释
'
Bash 脚本中的变量使用 $ 符号来引用,例如:
name="Bash"
echo "Hello, $name!"
Bash 脚本支持 if-else、case、for、while 等流程控制语句,例如:
if [ $a -gt $b ] # 如果a大于b
then
echo "a is greater than b"
else
echo "a is less than or equal to b"
fi
case $vech in
"car" )
echo "Rent of car is 20 dollar per day." ;;
"van" )
echo "Rent of van is 10 dollar per day." ;;
"jeep" )
echo "Rent of jeep is 50 dollar per day." ;;
* )
echo "Sorry, we do not have $vech." ;;
esac
for i in {1..5}
do
echo "Value of i: $i"
done
while [ $count -lt 10 ]
do
echo "Count: $count"
let count=$count+1
done
通过函数,你可以在 Bash 脚本中定义自己的函数,例如:
function greet {
echo "Hello World"
}
greet # 输出 "Hello World"
下面是几个 Bash 脚本应用案例:
这个 Bash 脚本用于创建一个目录,将需要拷贝的文件复制到该目录中,并将目录打包成 tar 压缩文件:
#!/bin/bash
# 创建目录
mkdir mydir
# 复制文件
cp -R /path/to/my/file mydir/
# 打包目录
tar -czvf mydir.tar.gz mydir/
# 删除目录
rm -rf mydir
这个 Bash 脚本用于按照日期备份文件,每天备份一个文件夹并通过邮件发送备份结果:
#!/bin/bash
# 备份源目录
BACKUP_SRC=/path/to/src
# 备份目录
BACKUP_DEST=/path/to/dest
# 备份文件名
BACKUP_FILE=$(date +"%Y-%m-%d").tar.gz
# 创建备份目录
mkdir -p $BACKUP_DEST
# 备份
tar -zcvf $BACKUP_DEST/$BACKUP_FILE $BACKUP_SRC
# 发送邮件
echo "Backup successful." | mail -s "Backup Result" root@example.com
这个 Bash 脚本用于监控系统 CPU、内存和硬盘使用情况,并将监控结果保存到 log 文件中:
#!/bin/bash
# 每5秒记录一次日志
INTERVAL=5
# log 文件名
LOG_FILE=/path/to/log
# 监控命令
MONITOR_CMD="top -n 1 -b"
while true
do
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
$MONITOR_CMD | grep "Cpu\|Mem\|Disk" | sed "s/^/$TIMESTAMP /" >> $LOG_FILE
sleep $INTERVAL
done
以上是 Bash 脚本的基本语法和应用案例,希望能对你有所帮助。如果你对 Bash 脚本有更多的兴趣,可以继续深入了解 Bash 脚本函数、参数、标准输入输出和环境变量等,以便在实际工作中更加灵活地应用 Bash 脚本。