嵌入式驱动开发的前期Linux 和 C学习(五)
来源:互联网 发布:手机淘宝查价格走势 编辑:程序博客网 时间:2024/06/10 06:35
今天整理的linux内容:
1) shell脚本:
以#!/bin/bash //申明使用的shell脚本的版本
a)while循环
while 测试条件
do
命令表
done
b)for循环
格式1:
for 变量 in 值表
do
命令
done
格式2:
for 变量 in 文件正则表达式(m*.c)
do
命令
done
格式3:
for 变量 in $* (此行等价于 for 变量)
do
命令
Done
注意for与while 控制循环方式的不同。
c)until 语句
until 测试条件
do
命令
Done
d)break语句: break [n] 跳出n层循环,默认为1。用在循环语句中。
continue语句:跳出本次循环之后的语句,回到循环开头,进行下一次循环。用在循环语句中。
e)exit语句:退出一个shell程序,并设置退出值。格式为:exit [n] n为退出值,若未给出n值,则退出值为最后一个命令的执行状态。
Return语句:一般用于函数中,设置函数的退出值。格式为: return [n]
f) shell函数:
[function] 函数名() #注意这里function可以不写
{
命令表
}
对shell函数的调用形式:函数名 参数1 参数2。这里参数1和参数2相当于函数的位置参数,注意同shell脚本的位置参数区别开来。
g) 注意test进行条件测试的几种方式:
字符串的比较;数字比较;文件操作符(如测试文件读权限,文件是否为目录文件等);逻辑操作符(!,-a,-o);特殊条件测试(true和false)。注意空格。
注:可以使用:bash -x 脚本文件名,对脚本进行简单调试。
h) 补充一点,当位置参数的个数大于9个时,不能直接引用。比如用 $10来引用第10个位置参数,这是不对的。可以结合shift命令来引用大于9的位置参数。
脚本代码中可以用set 来直接设置位置参数,形如:set hello word hello就是$1,word就是$2。
i)算数运算
在脚本中执行算数运算时,要用let命令,也可以用let命令的替代形式((a=b+c))。这里算数表达式使用c语言中表达式的语法、优先级和结合性。
Shell编程例子:
一、求1到10之间的和:
#!/bin/bash
sum=0
num=1
while [ $num -lt 11 ]
do
let sum=$num+$sum
let num=$num+1
done
echo "sum :$sum"
二、将一个目录($1)下的普通文件拷贝到另外一个目录($2)下:
#!/bin/bash
if [ $# -ne 2 ]
then
echo "need two parameter"
exit
fi
files="`ls $1`"
cd $1
for file in $files
do
if [ -f $file ]
then
echo $file
cp "$file" $2 -f
else
echo 'over'
fi
done
三、批量创建文件:脚本文件名目录文件名个数
#!/bin/bash
if [ $# -ne 3 ]
then
echo “need three parameters”
exit
fi
filename=$2
num=1
while [ $num -le $3 ]
do
#echo $1$2$num;
`touch $1$2$num`
let num+=1;
done
四、通过函数判断某用户是否正在使用系统:
#!/bin/bash
fun (){
echo "$?"
user=`who|grep ^"$1 ">/dev/null`
return $user
}
fun $1
if [ $? -eq 0 ]
then
echo "logining"
else
echo "not logined"
fi
五、计算0-100内能被3整除的数之和
#!/bin/bash
sum=0
num=100
while [ $num -gt 0 ]
do
let tmp=num%3
if [ $tmp -ne 0 ]
then
let num=num-1
continue
fi
let sum=sum+num
let num=num-1
done
echo "result:$sum"
1) shell脚本:
以#!/bin/bash //申明使用的shell脚本的版本
a)while循环
while 测试条件
do
命令表
done
b)for循环
格式1:
for 变量 in 值表
do
命令
done
格式2:
for 变量 in 文件正则表达式(m*.c)
do
命令
done
格式3:
for 变量 in $* (此行等价于 for 变量)
do
命令
Done
注意for与while 控制循环方式的不同。
c)until 语句
until 测试条件
do
命令
Done
d)break语句: break [n] 跳出n层循环,默认为1。用在循环语句中。
continue语句:跳出本次循环之后的语句,回到循环开头,进行下一次循环。用在循环语句中。
e)exit语句:退出一个shell程序,并设置退出值。格式为:exit [n] n为退出值,若未给出n值,则退出值为最后一个命令的执行状态。
Return语句:一般用于函数中,设置函数的退出值。格式为: return [n]
f) shell函数:
[function] 函数名() #注意这里function可以不写
{
命令表
}
对shell函数的调用形式:函数名 参数1 参数2。这里参数1和参数2相当于函数的位置参数,注意同shell脚本的位置参数区别开来。
g) 注意test进行条件测试的几种方式:
字符串的比较;数字比较;文件操作符(如测试文件读权限,文件是否为目录文件等);逻辑操作符(!,-a,-o);特殊条件测试(true和false)。注意空格。
注:可以使用:bash -x 脚本文件名,对脚本进行简单调试。
h) 补充一点,当位置参数的个数大于9个时,不能直接引用。比如用 $10来引用第10个位置参数,这是不对的。可以结合shift命令来引用大于9的位置参数。
脚本代码中可以用set 来直接设置位置参数,形如:set hello word hello就是$1,word就是$2。
i)算数运算
在脚本中执行算数运算时,要用let命令,也可以用let命令的替代形式((a=b+c))。这里算数表达式使用c语言中表达式的语法、优先级和结合性。
Shell编程例子:
一、求1到10之间的和:
#!/bin/bash
sum=0
num=1
while [ $num -lt 11 ]
do
let sum=$num+$sum
let num=$num+1
done
echo "sum :$sum"
二、将一个目录($1)下的普通文件拷贝到另外一个目录($2)下:
#!/bin/bash
if [ $# -ne 2 ]
then
echo "need two parameter"
exit
fi
files="`ls $1`"
cd $1
for file in $files
do
if [ -f $file ]
then
echo $file
cp "$file" $2 -f
else
echo 'over'
fi
done
三、批量创建文件:脚本文件名目录文件名个数
#!/bin/bash
if [ $# -ne 3 ]
then
echo “need three parameters”
exit
fi
filename=$2
num=1
while [ $num -le $3 ]
do
#echo $1$2$num;
`touch $1$2$num`
let num+=1;
done
四、通过函数判断某用户是否正在使用系统:
#!/bin/bash
fun (){
echo "$?"
user=`who|grep ^"$1 ">/dev/null`
return $user
}
fun $1
if [ $? -eq 0 ]
then
echo "logining"
else
echo "not logined"
fi
五、计算0-100内能被3整除的数之和
#!/bin/bash
sum=0
num=100
while [ $num -gt 0 ]
do
let tmp=num%3
if [ $tmp -ne 0 ]
then
let num=num-1
continue
fi
let sum=sum+num
let num=num-1
done
echo "result:$sum"
- 嵌入式驱动开发的前期Linux 和 C学习(五)
- 嵌入式驱动开发的前期Linux 和C学习(一)
- 嵌入式驱动开发的前期Linux 和C学习(二)
- 嵌入式驱动开发的前期Linux 和 C学习(三)
- 嵌入式驱动开发的前期Linux 和 C学习(四)
- 嵌入式驱动开发的前期Linux 和 C学习(六)
- 嵌入式驱动开发的前期Linux 和 C学习(七)
- 嵌入式驱动开发的前期Linux 和 C学习(八)
- 嵌入式驱动开发的前期Linux 和 C学习(九)
- 嵌入式驱动开发的前期Linux 和 C学习(十)
- 嵌入式Linux设备驱动开发笔记(五)
- 嵌入式Linux驱动笔记(五)------学习platform设备驱动
- Linux学习(前期)
- 11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(一)虚拟网卡驱动程序
- 11-S3C2440驱动学习(五)嵌入式linux-网络设备驱动(二)移植DM9000C网卡驱动程序
- Linux内核与驱动开发学习总结:自旋锁和信号量(五)
- Linux嵌入式驱动初体验(五)--- LED驱动解析
- 嵌入式Linux驱动开发
- SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点
- Socket模型详解(转)
- c++实现链表倒序
- hdu 3351
- org.apache.jasper.JasperException
- 嵌入式驱动开发的前期Linux 和 C学习(五)
- 微软C# MVP Sasha:我的技术心病
- 与JVM有关的一些系统属性
- CentOS-6.3-i386-LiveDVD虚拟机VM安装注意事项
- openCV矩阵操作
- UVa489 Hangman Judge
- 扫描ABAP代码
- hdu 4648 Magic Pen 6
- C# 5.0新特性:Async和Await使异步编程更简单