(遍历某个目录下所有文件,并执行相关命令)记录下自己写的linux shell脚本

更新个错误的地方

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

嗯就是这样,全剧终(应届毕业生,有哪位哥哥,姐姐公司招人的呀。普通本科学校毕业的,找工作好难)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值