Shell脚本多行换行报错:- unrecognized arguments- \

19 篇文章 1 订阅
13 篇文章 2 订阅

shell error: unrecognized arguments: \

在使用linux长命令时,我们通常会用一个shell脚本加\分行的形式来更清晰展示参数。

这时有一个注意事项:\后必须紧跟回车, 否则会导致后面的参数无法传入。因为这时程序会将后面的参数算作一条新命令。

本文要说的不是这个问题,而是另一个笔者在使用多换行的shell脚本过程中遇到的另一个问题。

笔者当时运行的脚本(简化了大部分参数)如下:

python mb_ae_act.py \
--ch_p 2 \
--batchSize0 1 \
--batchSize 64 \

报错为:

usage: mb_ae_act.py [-h] [--gpu_id GPU_ID] [--num_workers NUM_WORKERS] [--weight_decay WEIGHT_DECAY] [--p P] [--tbx TBX] [--batchSize BATCHSIZE] [--batchSize0 BATCHSIZE0] [--epochs EPOCHS] [--lr LR] [--opt OPT]
                    [--ch_p CH_P] [--load] [--pth_tbx PTH_TBX] [--load_epoch LOAD_EPOCH] [--act] [--rect] [--split] [--multiply] [--add] [--deeperRC] [--fix224] [--resample] [--HDD]
mb_ae_act.py: error: unrecognized arguments: \

经过多次尝试,发现是程序将最后一个\也当做了参数,正确写法应该不能有最后一个\或者在其之后加一个回车,即解决方案有以下两种:

  1. python mb_ae_act.py \
    --ch_p 2 \
    --batchSize0 1 \
    --batchSize 64 
    
  2. python mb_ae_act.py \
    --ch_p 2 \
    --batchSize0 1 \
    --batchSize 64 \
    
    

虽然是个小问题,但是不了解其中shell脚本换行的原理的话还是回花一些时间才能解决,笔者在此记录一下,希望能帮到后来人。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值