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

    技术2022-07-12  63

    更新个错误的地方

    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

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

    Processed: 0.033, SQL: 9