kaldi parse_options.sh

在Shell脚本中,通常需要为局部变量设置默认值,当没有传入参数时使用默认值。本文介绍了两种方法,尤其是第二种通过调用Kaldi项目的`parse_options.sh`脚本来简化处理。这种方法允许在不修改原脚本内容的情况下更新参数值,常用于Kaldi的run.sh脚本中,以便灵活地调整如数据目录、运行阶段等全局变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般程序里的局部变量我们都会设置默认值,如果没有传真值,程序执行时候使用默认值,这个在python或其它程序里都比较好实现,在shell里如何实现呢?

test.sh代码

a=1
b=1
echo "\$0 =${0} \$1=${1} \$2=${2}"
echo "default a=${a} b=$b"
echo "update a=${a} b=$b"

即使我们这样执行 bash test.sh --a 10 --b 22, 执行结果

(notebook) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs/lesson/v1/tmp# bash test.sh --a 10 --b 22
$0 =test.sh $1=--a $2=10
default a=1 b=1
update a=1 b=1

我们看到a,b的值并没有更新,如果想要a,b更新应该怎么办呢?

第一种写法是:在原脚本里增加传入参数判断。这个方法虽然也能实现修改参数默认值,但是写法上增加很多行脚本。


a=1
b=1
echo "\$0 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值