repo常用命令、Shell编写

repo常用命令

比较常用命令:
repo manifest -o xxx.xml
—输出远程服务上最新的project工程的使用版本;
repo diffmanifests 已知.mxl
—输出本地code的project版本与xml中的对应区别;
repo forall -p -c git status
—输出所有的本地工程和服务的修改状态;
—HEAD detached at 130a05c
表示当前的code是临时的修订版本,没有处于任何分支上;处于游离状态;

基础语法及简单实例

主要参考http://man.linuxde.net/xargs

  1. 如下列出一些基本使用案例,后续还要继续掌握如sed/xargs/cut/tr等指令

学会使用if…then…else fi 语法 表达式的判断如ne/le/ge/eq/lt/gt等数值比较

#!/bin/sh
i=gparted
j=/home/moocos/sda3
ffmpegcur=/media/sf_tftp/ffmpeg-3.4.1
SDLdir=/media/sf_tftp/SDL2-2.0.8
x=`sudo apt-cache search all | grep $i`
if [ `sudo apt-cache search all | grep $i |wc -l` -ne 0 ];then
   echo -e "yes,the packet_list: \n$x"
else
   sudo apt-get install gparted
fi
#有对应的目录就表示已经
if [`ls -l $j |wc -l` -ne 0]; then
  echo -e "have already dir"
else
  `mkdir /home/moocos/sda3` && `mount /dev/sda3 /home/moocos/sda3`
fi
cd /home/moocos/sda3
#找到对应的ffmpeg目录
#检查是否存在ffmpeg对应的目录或者文件;
if [`find . -type d -name ffmpeg |wc -l` -ne 0 ];then
  echo -e "have already SDL and ffmpeg"
else
  `cp -rf $ffmpegcur ./` && `cp -rf $SDLdir ./`
fi

学会使用目录查找,文件查找find . -type d -name ffmpeg,type后面可以跟不同的类型。wc -l 显示输出查找的个数。

#!/bin/sh
i=yasm
j=git
x=`sudo apt-cache search all | grep $i`
y=`sudo apt-cache search all | grep $j`
if [ `sudo apt-cache search all | grep $i |wc -l` -ne 0 ];then
   echo -e "yes,the packet_list: \n$x"
else
   sudo apt-get install yasm
fi
if [ `sudo apt-cache search all | grep $j |wc -l` -ne 0 ];then
   echo -e "yes,the packet_list: git \n$y"
else
   sudo apt-get install git
fi

#!/bin/sh
#SDL2
preDir=$(pwd)
currentDir=/SDL2-2.0.8
prefixdir=/usr/local/SDL
: << !
首先是进入到对应的SDL目录中去;
!
var=$preDir$currentDir
cd $var
#说明导出的目录位置
echo $preDir$prefixdir
./configure --prefix=$preDir$prefixdir
make 
make install
#将SDL编译到默认的目录中/usr/lib
./configure
make 
make install

将用到的编译ffmpeg写成脚本方便以后使用,这些目录都可以更改cp -rf $ffmpegcur ./&&cp -rf $SDLdir ./ 是将共享文件夹的内容复制到虚拟机的挂载目录中去

#!/bin/sh
#SDL2
preDir=$(pwd)
currentDir=/ffmpeg-3.2.4
prefixdir=/usr/local/ffmpeg
includeSDL=/usr/local/SDL/include/SDL2
libSDL=/usr/local/SDL/lib
: << !
首先是进入到对应的SDL目录中去;
!
var=$preDir$currentDir
cd $var
#说明导出的目录位置
echo $preDir$prefixdir
./configure --prefix=$preDir$prefixdir --enable-sdl --enable-ffplay --extra-cflags=-I$preDir$includeSDL --extra-ldflags=-L$preDir$libSDL --extra-libs=-ISDL2 --enable-shared
#make -j8
#make install


#!/bin/sh
#替换所有预编译定义的SDL;
CurDir=$(pwd)/ffmpeg-3.2.4/
filename=config.mak
echo $CurDir$filename
var=`cat $CurDir$filename | grep "CONFIG_SDL2 0"` 
#打印当前匹配上的SDL2的行
sed -i 's/!HAVE_SDL2=yes/HAVE_SDL2=yes 1/g' $CurDir$filename
sed -i 's/!CONFIG_FFPLAY=yes/CONFIG_FFPLAY=yes/g' $CurDir$filename

bat脚本编写简单实例,为虚拟磁盘增加容量pushd类似于shell中的cd -

@echo off
echo %cd%
type 1.txt
rem 设置当前目录为D:\Program Files\Oracle\VirtualBox
set current_dir=D:\Program Files\Oracle\VirtualBox
pushd %current_dir%
VBoxManage.exe modifyhd E:\mooc-os-2015.vdi\mooc-os-2015.vdi --resize 51200
pause
发布了38 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhiyanzhai563/article/details/79522223
今日推荐