更新个错误的地方
if else 的判断要用 [] 而不是用 () !!!!!!
一、脚本功能简述:
得到用户输入的 目录名称
语言类型
,遍历该目录下的所有文件,并执行相关命令
#初始化参数选项
export ready_fold_name=''
export language_type=1
#得到用户输入的参数值
read -p "请输入目录名称(如 multifold ):" ready_fold_name
read -p "请选择生成的语言(如 中文:1,英文:0 ):" language_type
echo "这是你输入的目录名称:$ready_fold_name"
#准备拼接读取文件名称字符
export curpath=${PWD}
echo ${ready_fold_name}
echo "上面是预操作的目录"
ljfiles_list=$(ls ./${ready_fold_name}/ )
#当前语言设置 1:中文 0:英文
export curlangue=""
if($language_type==1)
then
curlangue="./xunfei_config_zh.json"
echo "你当前选用的是=>中文<=输出"
else
curlangue="./xunfei_config_eng.json"
echo "你当前选用的是=>英文<=输出"
fi
#遍历每个文件,并执行命令
for file in $ljfiles_list
do
echo "当前文件名称如下:"
echo $file
echo "开始生成=>$file <=视频的字幕文件:"
eval " autosub -sapi xfyun -i ./${ready_fold_name}/${file} -sconf $curlangue "
done
二、使用截图:
三、学到的知识
1.变量定义:
变量定义,有一个普通的定义,还有个 export声明的定义,听说export定义的变量可以在当前环境中一直存在,类似全局变量。而普通的定义当终端关闭了就不存在了。类似私有变量。
2.命令 输入得到其返回值
变量=$( 命令 【参数】 )
如:
ljfiles_list=$(ls ./${ready_fold_name}/ )
下面这个也是一种,搞不懂为什么PWD要大写才可以。总之以第一种为准。
export curpath=${PWD}
3.脚本文件中执行 命令 写法
使用 eval
如:
eval " autosub -sapi xfyun -i ./${ready_fold_name}/${file} -sconf $curlangue "
4.关于变量使用
前面声明的变量(私有,全局都是一样的)是这样的
变量名= ...
如
ljfiles_list= ...
那么使用它就是 $ljfiles_list
如:
for file in $ljfiles_list
...
5.关于变量与变量,变量与字符串, 之间拼接
1.变量与变量 使用 ${变量名}
如:
${ready_fold_name}${ready_fold_name2}
2.变量与字符串 使用 [string]${变量名}[string]
这里【string】表示某个字符串,如果拼接在变量前面就是
[string]${变量名}
如
./${ready_fold_name}
另一个就不说了。一样的,无非是谁前谁后
6.if else我接触到的
if (【判断条件】)
then
【为逻辑真的主体】
else
【为逻辑假的主体】
fi