第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

引言

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

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

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

 脚本编写-bash脚本基础

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

初识 Bash 与脚本结构

Bash(Bourne Again SHell)是 Linux 系统中最常用的 Shell 之一,它不仅是一个交互式的命令解释器,还是一种强大的脚本语言。

脚本的基本结构

#!/bin/bash

# ——————————————————— 

# 脚本说明: 本脚本用于演示 Bash 脚本的基本结构 

# 作者: [你的名字] 

# 日期: $(date +%F) 

# ———————————————————  

变量定义与使用 

GREETING=”Hello, World!” 

echo $GREETING 

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

读取用户输入 

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 

done

函数定义与调用 

function say_hello() { 

    echo “Hello, $1!” 

}

say_hello “$USER_NAME” 

脚本结束 

echo “脚本执行完毕.” 

解释:

#!/bin/bash(Shebang):指定脚本使用的解释器,确保脚本在不同系统上能正确运行。

注释(#):用于解释代码,不会被执行。

变量赋值无需空格,引用变量时需要使用 $ 符号。

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

基础语法与操作

变量与数据类型

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。

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

流程控制与循环

条件判断

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}。

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

函数与脚本调试

定义与调用函数

# 定义函数 

greet_user() { 

    local name=$1 

    echo “你好, $name!” 

}

# 调用函数 

greet_user “Alice” 

说明:函数内的变量如果需要局部化,建议使用 local 关键字。

调试技巧

在脚本的第一行添加以下选项可以帮助调试:

#!/bin/bash

set -e  # 遇到错误立即退出 

set -u  # 使用未定义变量时报错 

set -x  # 打印执行的每一行命令 (调试时打开) 

说明:set 命令可以控制脚本的执行行为,提高脚本的健壮性。

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

本章要点总结

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程
第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

Bash脚本基础知识点梳理

Bash 与脚本结构:介绍了变量定义、条件判断、函数调用功能

基础语法与操作:介绍了变量与数据类型、字符串与算术运算

流程控制与循环:介绍了条件判断、循环结构

第五章:Linux 脚本批量提交任务方法! | 2026新版VASP基础教程

下一步学习建议

下一章将正式引入本次教程的核心—slurm作业调度。我们将从Slurm的核心原理与架构核心组件与关键功能,作业提交与管理流程方面详细介绍slurm作业调度,以及他们在VASP计算中的应用,敬请期待!

声明:如需转载请注明出处(华算科技旗下资讯学习网站-学术资讯),并附有原文链接,谢谢!
(0)
上一篇 2天前
下一篇 11小时前

相关推荐