test命令:如果条件成立,test命令状态为0退出,if条件成立
数字比较:
-gt 大于
-eq 等于
-le 小于
-ne 不等于
简写形式[ $a -le $b ]
字符串比较:
str1 =str2
str1!=str2
文件比较
-d 检查文件是否存在,并且是一个目录
-e 检查文件是否存在
-f 检查是否存在,并且是一个文件
-r 检查文件是否存在,并且可读
-x 检查文件是否存在,并且是否可执行
-w 检车文件是否存在,并且是否可写
file1 -nt file2 file1是否比file2新
file1 -ot file2 file1是否比file2旧
多个条件 []
if [ ] &&[ ]
任意数学赋值或者比较表达式
if (( a++ > 90 ))
case命令:
testuser="leilu"
case $testuser in
rose)
echo "is leilu ";;
ricky)
echo "is ricky ";;
*)
echo "is default";;
esac
for循环:
程序1:
for item in Mother Father Brother
do
echo $item
done
程序2:
str="--Mother--Father--Brother"
IFS=$--
for item in str
do
echo $item
done
加上IFS=$--就将--去掉了
while命令:
while test commangd
do
命令
done
例子:
a=0
while (( $a <= 10 ))
do
if (( $a >= 7 ))
then
echo "大于7了"
else
echo "num:$a"
break
a=$[ $a + 1 ]
fi
done
获取参数总数:
$#:获取变量个数
$0:获取文件名
$@:打印所有参数
遍历所有参数:
for item in "$@"
do
echo $item
done
输入输出重定向:
./a.txt $> test.txt
标准输入输出:
#0 STDIN
#1 STDOUT
#2 STDERR
例子:
exec 1>test1
exec 2>test2
函数:
例子1:
function myfun() [这里要有空格]{
echo $1
ehco $2
}
myfun 1 2
例子2:
function a() {
echo $[ $1 + $2 ]
}
value = $( a 1 2 )
echo $value
引入领外一个脚本:
source 脚本路径 或者. 脚本路径
编译ffmpeg:
编写shell脚本之前,要执行./configure --disable-yasm 主要目的就行进行一系列的准备工作,如果说
检查gcc的版本,生成config.mak等文件
编写脚本:
function build_ffmpeg() {
echo "开始编译..."
./configure -tartget-os=linux \(这是换行符,这里不能有空格)
--prefix=$PREFIX \
--cpu=$CPU \
--arch=ARCH \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages
make clean
make
make install
echo "编译完成..."
}
ARCH=arm
CPU=arm
PREFIX=$(pwd)/android/$CPU
build_ffmpeg
数字比较:
-gt 大于
-eq 等于
-le 小于
-ne 不等于
简写形式[ $a -le $b ]
字符串比较:
str1 =str2
str1!=str2
文件比较
-d 检查文件是否存在,并且是一个目录
-e 检查文件是否存在
-f 检查是否存在,并且是一个文件
-r 检查文件是否存在,并且可读
-x 检查文件是否存在,并且是否可执行
-w 检车文件是否存在,并且是否可写
file1 -nt file2 file1是否比file2新
file1 -ot file2 file1是否比file2旧
多个条件 []
if [ ] &&[ ]
任意数学赋值或者比较表达式
if (( a++ > 90 ))
case命令:
testuser="leilu"
case $testuser in
rose)
echo "is leilu ";;
ricky)
echo "is ricky ";;
*)
echo "is default";;
esac
for循环:
程序1:
for item in Mother Father Brother
do
echo $item
done
程序2:
str="--Mother--Father--Brother"
IFS=$--
for item in str
do
echo $item
done
加上IFS=$--就将--去掉了
while命令:
while test commangd
do
命令
done
例子:
a=0
while (( $a <= 10 ))
do
if (( $a >= 7 ))
then
echo "大于7了"
else
echo "num:$a"
break
a=$[ $a + 1 ]
fi
done
获取参数总数:
$#:获取变量个数
$0:获取文件名
$@:打印所有参数
遍历所有参数:
for item in "$@"
do
echo $item
done
输入输出重定向:
./a.txt $> test.txt
标准输入输出:
#0 STDIN
#1 STDOUT
#2 STDERR
例子:
exec 1>test1
exec 2>test2
函数:
例子1:
function myfun() [这里要有空格]{
echo $1
ehco $2
}
myfun 1 2
例子2:
function a() {
echo $[ $1 + $2 ]
}
value = $( a 1 2 )
echo $value
引入领外一个脚本:
source 脚本路径 或者. 脚本路径
编译ffmpeg:
编写shell脚本之前,要执行./configure --disable-yasm 主要目的就行进行一系列的准备工作,如果说
检查gcc的版本,生成config.mak等文件
编写脚本:
function build_ffmpeg() {
echo "开始编译..."
./configure -tartget-os=linux \(这是换行符,这里不能有空格)
--prefix=$PREFIX \
--cpu=$CPU \
--arch=ARCH \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-htmlpages \
--disable-manpages \
--disable-podpages \
--disable-txtpages
make clean
make
make install
echo "编译完成..."
}
ARCH=arm
CPU=arm
PREFIX=$(pwd)/android/$CPU
build_ffmpeg