



在上一章《第四章:超算平台模块管理讲解!| 2026新版VASP基础教程》中,华算科技朱老师详细介绍了Linux系统基础—超算平台使用。VASP需要安装在超算平台上,使用脚本提交计算任务。本章将正式介绍脚本编写,从使用脚本来提交计算任务的方法来介绍VASP运行方法。




Bash(Bourne Again SHell)是 Linux 系统中最常用的 Shell 之一,它不仅是一个交互式的命令解释器,还是一种强大的脚本语言。
脚本的基本结构:
#!/bin/bash
# ———————————————————
# 脚本说明: 本脚本用于演示 Bash 脚本的基本结构
# 作者: [你的名字]
# 日期: $(date +%F)
# ———————————————————
变量定义与使用
GREETING=”Hello, World!”
echo $GREETING





读取用户输入
read -p “请输入您的名字: ” USER_NAME
echo “欢迎您, $USER_NAME”
条件判断
if [ “$USER_NAME” == “Alice” ]; then
echo “Alice, 您好!”
elif [ “$USER_NAME” == “Bob” ]; then
echo “Bob, 您好!”
else
echo “陌生人, 您好!”
fi
循环结构
echo “倒计时 5 秒钟:”
for i in {5..1}; do
echo “$i…”
sleep 1
done
函数定义与调用
function say_hello() {
echo “Hello, $1!”
}
say_hello “$USER_NAME”
脚本结束
echo “脚本执行完毕.”
解释:
#!/bin/bash(Shebang):指定脚本使用的解释器,确保脚本在不同系统上能正确运行。
注释(#):用于解释代码,不会被执行。
变量赋值无需空格,引用变量时需要使用 $ 符号。





变量与数据类型
Bash 中的变量无需声明类型,默认都是字符串。常用的变量操作包括:
# 定义变量
NAME=”John Doe”
AGE=30
# 读取用户输入
read -p “请输入你的名字: ” USER_INPUT
# 只读变量
readonly PI=3.14159
# 删除变量
unset AGE
注意:变量名不能包含空格,且通常使用大写字母或下划线分隔单词。
字符串与算术运算
# 字符串拼接
FULL_NAME=”${NAME} Jr.”
# 字符串长度
LEN=${#NAME}
# 算术运算 (推荐使用 $((…)) )
SUM=$((5 + 3))
PRODUCT=$((5 * 3))
# 浮点运算 (需要调用 bc)
FLOAT_RESULT=$(echo “scale=2; 10 / 3” | bc)
说明:算术运算符包括 + – * / %,关系运算符包括 -eq -ne -gt -lt -ge -le。





条件判断
Bash 提供了丰富的条件判断方式:
# if 语句
if [ “$NAME” == “Alice” ]; then
echo “Hello, Alice”
elif [ “$NAME” == “Bob” ]; then
echo “Hello, Bob”
else
echo “Hello, Stranger”
fi
# 判断文件是否存在
if [ -f “/path/to/file” ]; then
echo “文件存在”
fi
# 判断字符串是否为空
if [ -z “$STRING” ]; then
echo “字符串为空”
fi
注意:[ 实际上是 test 命令的别名,条件两侧必须有空格。
循环结构
# for 循环 (遍历列表)
for item in apple banana cherry; do
echo “水果: $item”
done
# for 循环 (遍历文件)
for file in *.txt; do
echo “处理文件: $file”
done
# while 循环 (基于条件)
COUNT=1
while [ $COUNT -le 5 ]; do
echo “计数: $COUNT”
((COUNT++))
done
# until 循环 (直到条件满足)
NUM=1
until [ $NUM -gt 5 ]; do
echo “数字: $NUM”
((NUM++))
done
说明:Bash 支持花括号展开(Brace Expansion)来生成序列,如 {1..5} 或 {a..z}。
定义与调用函数
# 定义函数
greet_user() {
local name=$1
echo “你好, $name!”
}
# 调用函数
greet_user “Alice”
说明:函数内的变量如果需要局部化,建议使用 local 关键字。
调试技巧
在脚本的第一行添加以下选项可以帮助调试:
#!/bin/bash
set -e # 遇到错误立即退出
set -u # 使用未定义变量时报错
set -x # 打印执行的每一行命令 (调试时打开)
说明:set 命令可以控制脚本的执行行为,提高脚本的健壮性。




Bash 与脚本结构:介绍了变量定义、条件判断、函数调用功能
基础语法与操作:介绍了变量与数据类型、字符串与算术运算
流程控制与循环:介绍了条件判断、循环结构
下一章将正式引入本次教程的核心—slurm作业调度。我们将从Slurm的核心原理与架构、核心组件与关键功能,作业提交与管理流程方面详细介绍slurm作业调度,以及他们在VASP计算中的应用,敬请期待!
