新人学了两天的shell求帮助

有女如云 2013-12-16 06:12:16
#!/bin/bash
#查询sdcard空间,结果放进文件
adb shell df > diskspace.tmp
#返回行数
length=`awk 'END{print NR}' diskspace.tmp`
#可用空间
free=`awk 'NR==15{print $4 }' diskspace.tmp`
free="12M"
echo "$free" | grep -q "G"
if [ $? -eq 0 ]; then
#以G结尾
freeSize=$((${free%G*}*1024*1024))
else
echo "$free" | grep -q "M"
if [ $? -eq 0 ]; then
#以M结尾
freeSize=$((${free%M*}*1024))
else
freeSize=$free
fi
fi
#echo "freeSize:"$freeSize >> android.log

#可用空间小于20M
if(($freeSize <= 20*1024));then
echo "存储空间不足" >> android.log
#查询Camera目录下的文件,结果放进文件
adb shell ls /sdcard/DCIM/Camera > android.tmp
#返回行数
length=`awk 'END{print NR}' android.tmp`
i=1
#循环遍历
while((i <= $length))
do
#读取一行
#awk在行数为参数时无法读取
line=`sed -n "$i"p ./android.tmp`
echo "$line" | grep -q ".3gp"
if [ $? -eq 0 ]; then
#以3gp结尾
#此处应删除以3gp结尾的文件
#直接执行 adb shell rm /sdcard/DCIM/Camera/$line 失败
#
line=/sdcard/DCIM/Camera/$line
echo $line > rm.tmp
adb shell rm `awk 'NR==1{print}' rm.tmp` >> android.log
#echo "rm $line" >> android.log

fi
i=$(($i+1));
done
fi

红色处需要执行 adb shell rm filepath 可是死活都执行不了。
...全文
284 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljc007 2013-12-17
  • 打赏
  • 举报
回复
bash -vx test.sh 结果贴出来看看 另外,以3gp结尾的文件应该是这样:
echo "$line" | grep -q "\.3gp$"
ljc007 2013-12-17
  • 打赏
  • 举报
回复
引用 3 楼 an_zhiruo 的回复:
这个也试过,不可以。。。
我知道不可以。 我的意思是让你按照那种方法执行,把过程贴出来。
有女如云 2013-12-17
  • 打赏
  • 举报
回复
引用 1 楼 ljc007 的回复:
bash -vx test.sh 结果贴出来看看 另外,以3gp结尾的文件应该是这样:
echo "$line" | grep -q "\.3gp$"
这个也试过,不可以。。。
有女如云 2013-12-17
  • 打赏
  • 举报
回复
引用 楼主 an_zhiruo 的回复:
#!/bin/bash #查询sdcard空间,结果放进文件 adb shell df > diskspace.tmp #返回行数 length=`awk 'END{print NR}' diskspace.tmp` #可用空间 free=`awk 'NR==15{print $4 }' diskspace.tmp` free="12M" echo "$free" | grep -q "G" if [ $? -eq 0 ]; then #以G结尾 freeSize=$((${free%G*}*1024*1024)) else echo "$free" | grep -q "M" if [ $? -eq 0 ]; then #以M结尾 freeSize=$((${free%M*}*1024)) else freeSize=$free fi fi #echo "freeSize:"$freeSize >> android.log #可用空间小于20M if(($freeSize <= 20*1024));then echo "存储空间不足" >> android.log #查询Camera目录下的文件,结果放进文件 adb shell ls /sdcard/DCIM/Camera > android.tmp #返回行数 length=`awk 'END{print NR}' android.tmp` i=1 #循环遍历 while((i <= $length)) do #读取一行 #awk在行数为参数时无法读取 line=`sed -n "$i"p ./android.tmp` echo "$line" | grep -q ".3gp" if [ $? -eq 0 ]; then #以3gp结尾 #此处应删除以3gp结尾的文件 #直接执行 adb shell rm /sdcard/DCIM/Camera/$line 失败 # line=/sdcard/DCIM/Camera/$line echo $line > rm.tmp adb shell rm `awk 'NR==1{print}' rm.tmp` >> android.log #echo "rm $line" >> android.log fi i=$(($i+1)); done fi 红色处需要执行 adb shell rm filepath 可是死活都执行不了。
这个也试过。不可以。。。
linux 学习入门级宝典  Linux零基础初级教程作者:红联 Linux零基础初级教程 ─────DIY就要Linux   一部较适合Linux学习者学习的书籍,特别是刚从Windows转向Linux的朋友。主讲Linux基本技能 。随着Linux日益强大,越来越多的人接触Linux,但苦于无参考书籍,使得Linux学习倍感吃力,本书 将指引你通向Linux高手之路。   一个障碍,一个Linux学习的最大障碍-无书-在困扰着每一个企图闯出初、中级Linux困境的人 。---摘自《红联文摘》 广大Linux高手和通过Linux认证学习者都曾说过,做笔记是学习Linux中非常重要的环节,同时也 是通过Linux认证的必要前提,学习笔记可以很好地帮助自己温故巩固所学过的内容,也可以帮助自己 更快的发现学习中的进度及需加强的知识,更可以为以后更进一步的学习留下宝贵的历史记录及帮助 人学习的资料,红联Linux论坛非常希望大家能这样做。   一份完整的学习笔记应该包括以下两个方面:主学部分和次要参考信息。在做笔记中,你可能用 不同颜色的笔来记载这两方面,使之有所区别。“主学部分”是指学习Linux操作系统目标内容。俗称 重点知识,熟记知识等。比如常用的系统管理命令,Linux下重要服务器的配置方法等等。“次要参考 信息”是指主学部分以外的各方面内容,这是学习笔记的次要部分,但也不要忽视它,因为这些内容 让我们更了解Linux,比如Linux的发展历史和特点,windows的dos提示下与Linux shell提示下常用命 令的对比,windows与Linux有何不同等等。千万不要小看这些内容,任何细小的环节都可以左右你的 技能水平,把涉及到有用的内容记下来是做笔记很好的习惯,如果你还有多余的时间,建议你也写写 学习日记,把你的学习进程及学习感受都写下来,艰辛的学习历程,我坚信那会成为激励你深造的武 器,我们拭目以待吧。有些人习惯把学习笔记与日记一同写,这是很值得推荐的。   学习Linux为什么要写学习笔记呢?它对学习有多大的帮助。我说不清楚,但我可以肯定对帮助学 习成长起到的作用是相当大的,总之,写学习笔记是正确的学习方法,学习笔记的记录应该尽量仔细 ,而且一定要清楚,字体美观,不能过几天之后就看不明白了,要给自己制造帮助成长的信息,同时 也给自己留下有保存价值的信息,以便今后再学习。怎么样,学习笔记有那么大的魅力,还等什么, diy写一份属于自己学习Linux的资料吧!

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧