文章目录
  1. 1. 前言
  2. 2. 开始学习
  3. 3. 先学一个最简单实例:
  4. 4. 使用文件保存脚本并运行
  5. 5. 完成我的脚本需要的shell指令,详细请查看学习网站http://www.runoob.com/linux/linux-shell.html
  6. 6. 最终的shell命令:
  7. 7. PS:

前言

最近在开发一款能进行视频合并的软件,由卡通部提供动态素材,然后把拍摄内容和动态素材进行合并输出。
这是卡通部扔给我的东西:

那么问题来了,卡通部随便就扔了一堆素材过来,封面图有jpg后缀的,有png后缀的,咱们还需要把这些素材打包成zip格式,并加入json文件便于程序解析, json叫卡通部学习成本就高了。好在卡通部命名还算规则,同一组素材的前缀是一样的, 只能自己处理了。 写脚本是个不错的选择,那就弄弄看吧。
最后应该整理成这样的:

开始学习

学习网站:http://www.runoob.com/linux/linux-shell.html
首先要分析一下我们要做声明东西:

  1. 需要统一封面图后缀,那就把.jpg后缀改成.png
  2. 新建xxx命名的文件夹
  3. 需要把名字相同的xxx.png、xxx.rgb.mov、xxx.alpha.mov移到xxx命名的文件夹
  4. 在文件夹内生成json文件,并且往json文件里写入内容
  5. 把xxx文件夹压缩成zip

对应可能需要学习的脚本指令:

  1. 重命名
  2. 新建文件夹
  3. 移动文件
  4. 新建文件
  5. 压缩
  6. 遍历文件
    好了,那开始做了

先学一个最简单实例:

#!/bin/bash
echo "Hello World !"

解释:#!/bin/bash “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。
echo 是输出。 echo “Hello” 将会在控制台打印“Hello World”

使用文件保存脚本并运行

将上面的代码保存为test.sh,并cd到相应目录。在控制台输入:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

将会在控制台打印“Hello World”。 记住是文件名前有./

完成我的脚本需要的shell指令,详细请查看学习网站http://www.runoob.com/linux/linux-shell.html

  1. 声明变量: yourname=“xxxx”
  2. 读取变量: $yourname
  3. 从控制台读输入: read xxx
  4. 获取本文件夹下的文件列表 : for f in “*.png” //查找本目录下.png后缀的文件
  5. 截取字符串,需要获取每一组的名字: ${xxx.png%.png} //%.png是截取“xxx.png”字符串里的“xxx”
  6. 重命名:mv “xxx.jpg” “123.png” //把xxx.jpg重命名为123.png
  7. 新建文件夹:mkdir “haha” //新建haha文件夹
  8. 新建文件: touch “item.json” //新建item.json文件
  9. echo “123”> item.json //把“123”写到item.json文件
  10. zip -r test.zip test //把test文件或者文件夹压缩成test.zip

最终的shell命令:

#!/bin/bash

echo '改的后缀:'
read beforeExt
echo '改后的后最:'
read afterExt

for ext in *$beforeExt
do
    tempName=${ext%*.$beforeExt}
    mv "$ext" $tempName.$afterExt #改后最
    mkdir $tempName   #新建文件夹
    #移动到文件夹
    for f in $tempName*
    do
        result=$(echo $f | grep ".$afterExt")
        if [[ "$result" == "" ]]  #不是png类型
            then
                mv $f  $tempName
        fi
    done

    #新建item.json
    cd $tempName
    touch item.json
    jsonContent="{
      \"name\": \"$tempName\",
      \"picture\": \"http://xxx.com/$tempName.png\",
      \"alpha\": \"http://xxx.com/$tempName.alpha.m4v\",
      \"rgb\": \"http://xxx.com/$tempName.rgb.m4v\",
      \"zip\": \"http://xxx.com/$tempName.zip\"
    }"
    echo $jsonContent > item.json
    cd ..
    #压缩
    zip -r $tempName.zip $tempName
done

PS:

运用简单的几个shell脚本命令可以完成日常一些繁琐的工作.
学一些简单的脚本命令还是很有好处的,能很好地简化重复的工作.

文章目录
  1. 1. 前言
  2. 2. 开始学习
  3. 3. 先学一个最简单实例:
  4. 4. 使用文件保存脚本并运行
  5. 5. 完成我的脚本需要的shell指令,详细请查看学习网站http://www.runoob.com/linux/linux-shell.html
  6. 6. 最终的shell命令:
  7. 7. PS: