1、shell脚本
输出 echo
文件头 #!/bin/bash
初始化标量 ndk=10 text=shell
特殊 text=“i love shell” 有空格需要用引号
text1=$(who)
echo $ndk
echo $text
命令行结束状态
0 成功
127 没有找到命令
1 未知错误
126 命令不可执行
if条件语句
只有if命令的退出状态码为0,才会执行then部分
语法结构
if --命令–
then
–命令–
fi
实例代码
#!/bin/bash
mydir=/usr/jason
#-d检查目录是否存在
if [ -d $mydir ]
then
echo "$mydir exist"
cd $mydir
ls
else
echo "mydir not exist"
fi
test数值比较
-gt
-eq 等于
-le
-ne 不等于
test 字符串比较
str1==str2
str1!=str2
str1<str2
-n str1 长度是否非0
-z str2 长度是否为0
文件比较
-d 检查是否存在,并且是一个目录
-e 检查file是否存在
-f 检查是否存在,并且是一个文件
-r 检查是否存在,并且可读
-w -x
file1 -nt file2 file1比file2新
file1 -ot file2 file1比file2旧
case命令
case 变量 in
pattern1)命令;;
pattern2)命令;;
*)默认命令;;
esac
实例代码
#!/bin/bash
testuser=rose
case $testuser in
rose)
echo "hi,$testuser";;
ricky)
echo "hello, ricky";;
*)
echo "defaults";;
esac
for命令
for var in list
do
–命令–
done
实例代码
#!/bin/bash
list="Mother\'s Father Brother"
list2="windows--linux--macos"
#IFS字段分隔符
IFS=$--
for item in $list2
do
echo $item
done
while命令
while test command
do
–命令–
done
实例代码
#!/bin/bash
a=10
while [ $a -gt 0 ]
do
echo "num:$a"
#赋值不用使用$符号
a=$[ $a - 1 ]
if [ $a -eq 5 ]
then
echo "break"
break
fi
done
输入输出重定向
./14.sh 1>test 将标准输出重定向到test文件,不在输出到屏幕上
实例代码
#!/bin/bash
##标准输入输出
#0 STDIN
#1 STDOUT 标准输出
#2 STDERR 标准错误
#永久重定向
exec 1>test7
exec 2>test8
#自定义输出
exec 7>test9
echo "cc zz" >&7
echo "cc yy"
ls -a ./ff
函数的传参
实例代码
#!/bin/bash
#函数的传参,返回值
function myfun
{
echo $[ $1 + $2 ]
}
value=$(myfun 10 90)
echo "value:$value"
函数库的引用
库函数`
#!/bin/bash
#函数库
function add()
{
echo $[ $1 + $2 ]
}
引用
#!/bin/bash
#引入./17.sh
#source ./17.sh
#.source快捷别名
. ./17.sh
function myfun()
{
echo $value
}
value=20
myfun
echo "add value:$(add 10 30)"
zhufk
本文详细介绍了FFMPEG实战中涉及到的shell脚本知识,包括shell脚本的基本语法,如输出、变量赋值、命令行状态、if条件语句、字符串和文件比较,以及for、while循环的使用。同时,还讲解了输入输出重定向、函数参数传递和函数库引用等高级特性。
459

被折叠的 条评论
为什么被折叠?



