首页 > 解决方案 > 从 bash 运行 python 解析脚本

问题描述

我想运行一个从 bash 文件解析的 python 脚本。当我尝试运行它时,到处都是错误,我不知道问题可能是什么。有什么帮助吗?

bash 脚本 (run_dmd_atomic.sh) 如下所示:

#!/bin/bash

BATCH_SIZE=${1}
CODE_LENGTH=${2}
EPOCHS=${3}
SP=${4}
A1=${5}
A2=${6}
A3=${7}

srun python3 dmd_solver.py \
--batch_size ${BATCH_SIZE} \
--code_length ${CODE_LENGTH} \
--epochs ${EPOCHS} \
--sp ${SP} \
--a1 ${A1} \
--a2 ${A2} \
--a3 ${A3} \

我得到的错误是:

[tmarta@eu-login-09-ng training]$ ./run_dmd_atomic.sh
./run_dmd_atomic.sh: line 20: srun: command not found

标签: pythonbashparsing

解决方案


在 bash 脚本中,变量赋值表达式中不允许有空格。否则,bash 将其解释为命令或可执行文件。您的错误日志指出了这一点。

例如,在您的脚本中

BATCH_SIZE = ${1}

应该

BATCH_SIZE=${1}

推荐阅读