linux bash变量名报错 | 变量名左右有空格 | 传参

文章描述了一个bash脚本在执行时遇到的变量引用错误,包括变量名大小写敏感性和等号两侧空格的问题。用户尝试运行一个包含nvidia-smi、数据文件路径设置、模型训练和评估的Python脚本,但在使用变量如TRAIN_FILE时遇到了未找到命令的错误。问题可能源于变量命名规范和等号操作符的使用不当。
部署运行你感兴趣的模型镜像

正确的版本

nvidia-smi
cd $SLURM_SUBMIT_DIR
NAME=e30-gen-py-raw
LOSS_FILENAME='loss/'$NAME'.csv'
LOG_FILENAME='log/'$NAME'.log'
TRAIN_FILE='py-raw/encoder-train.json.seq2seq'
DEV_FILE='py-raw/encoder-dev.json.seq2seq'
TEST_FILE='py-raw/encoder-test.json.seq2seq'
MODEL_NAME_OR_PATH='/project/ruanxiaoming/codes/models/codet5-base'


python3 run.py --do_train --do_eval --do_test --model_name $MODEL_NAME_OR_PATH --train_filename $TRAIN_FILE --dev_filename $DEV_FILE --test_filename $TEST_FILE --loss_filename $LOSS_FILENAME --num_train_epochs 30 --lang bash --max_source_length 256 --max_target_length 128 --train_batch_size 6 --eval_batch_size 6 --log_name=$NAME --output_dir=$NAME
bash evaluate-py.sh $NAME 1

报错经过

  1. 变量名小写报错(这个待考究,bash变量区分大小写,但是小写应该也行)
train_file='py-raw/encoder-train.json.seq2seq'
/tmp/slurmd/job2426007/slurm_script: line 16: TRAIN_FILE: command not found
  1. 等号左右有空格报错
train_file = 'py-raw/encoder-train.json.seq2seq'

原因

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值