【BUG】shell命令过长用\换行报错

sh脚本在windos上编写好,上传到linux服务器会报错(sh脚本包含换行符会报错,不包含不报错)。操作系统改变导致格式错误。使用dos2unix转化sh文件即可正常执行。

如run.sh文件

python run_classify.py \
--model_type bert \
--model_name_or_path /data/sfang/BertPretrainedModel/torch/chinese_electra_base_discriminator_pytorch/ \
--do_train \
--do_test  \
--data_dir ./data/data \
--output_dir ./model_roberta \
--max_seq_length 256

直接执行会报错:

usage: run_classify.py [-h] --data_dir DATA_DIR --model_type MODEL_TYPE
                       --model_name_or_path MODEL_NAME_OR_PATH
                       [--meta_path META_PATH] --output_dir OUTPUT_DIR
                       [--epochs EPOCHS] [--patience PATIENCE]
                       [--batch_size BATCH_SIZE]
                       [--learning_rate LEARNING_RATE]
                       [--max_seq_length MAX_SEQ_LENGTH] [--do_train]
                       [--do_test] [--do_predict] [--device DEVICE]
run_classify.py: error: the following arguments are required: --data_dir, --model_type, --model_name_or_path, --output_dir
run_electra.sh:行2: --model_type: 未找到命令
run_electra.sh:行3: --model_name_or_path: 未找到命令
run_electra.sh:行4: --do_train: 未找到命令
run_electra.sh:行5: --do_eval: 未找到命令
run_electra.sh:行6: --do_test: 未找到命令
run_electra.sh:行7: --data_dir: 未找到命令
run_electra.sh:行8: --output_dir: 未找到命令
run_electra.sh:行9: --max_seq_length: 未找到命令

或者报错:

run_electra.sh:行1: $'\r': 未找到命令

使用dos2unix转化格式后正常。

yum install dos2unix
dos2unix run.sh

 

 

你可能感兴趣的:(Linux,shell换行报错)