免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2387 | 回复: 12
打印 上一主题 下一主题

写了3个Shell Scripting。麻烦帮忙看看!谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-31 03:50 |只看该作者 |倒序浏览
第一个是:

#!/bin/bash  
echo "a Display disk usage."
echo "b Display file usage for the current directory. "
echo "c Display all executing processes"
read option
echo "$option was been selected"
case $option in
a)
   df
   ;;
b)
   df .
   ;;
c)
   ps -u ced4033
   ;;
*)
esac


意思就是 出现 a b c 三个选项,然后让用户选择,输入a 的话就 显示 空间大小, b 的话就 显示当前目录  c 的话就显示所有exe 文件。
请大家看看我写的是否正确,反正运行没问题!


第二个是:

#!/bin/bash

filename=1
k=1000
until [ $filename = "0" ];do

        echo "Please enter the file name or press 0 to exit!"
        read filename

        if [ -e $filename ]; then
                size=`ls -l $filename | awk '{print $5}'`
              if [ $size = 0 ]; then
                echo "Supplied filename is an empty file"
              else
                echo "Size of supplied file name is $size bytes"
              fi
        else
                echo "Supplied file name does not exits in current directory"
        fi
done

查找文件名,如果文件名不存在,就显示文件不存在,如果存在,就显示文件的大小是 XXBytes, 一直到用户输入 0 才退出。


第三个是:

#!/bin/bash
      

for f in *.txt; do
            base=`basename $f .txt`
            mv $f $base.text
        done

重命名 所有 .txt.文件 为 .text文件。 苜蓿用 for loop。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2009-01-31 04:29 |只看该作者
1
df . 好像不是当前目录空间大小,有个du命令

2,3 如果文件名含空格的话会有问题

论坛徽章:
0
3 [报告]
发表于 2009-01-31 04:51 |只看该作者
原帖由 ynchnluiti 于 2009-1-31 04:29 发表
1
df . 好像不是当前目录空间大小,有个du命令

2,3 如果文件名含空格的话会有问题



请问老师,我应该如何更改?
我是初学者,还有3小时就要递交了。麻烦您赐教!

论坛徽章:
0
4 [报告]
发表于 2009-01-31 05:03 |只看该作者
第一个已经改完了。
2 , 3 题目 请赐教!

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2009-01-31 05:07 |只看该作者
原帖由 cfu1 于 2009-1-31 05:03 发表
第一个已经改完了。
2 , 3 题目 请赐教!

用双引号
2
$filename -> "$filename"

3

  1. for f in *.txt; do
  2. base=`basename "$f" .txt`
  3. mv "$f" "$base.text"
  4. done
复制代码

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
6 [报告]
发表于 2009-01-31 05:14 |只看该作者
另外
1
c)
   ps -u ced4033  这个不能显示所有exe 文件吧
2
输入0也会提示"Supplied file name does not exits in current directory"

论坛徽章:
0
7 [报告]
发表于 2009-01-31 05:17 |只看该作者
原帖由 ynchnluiti 于 2009-1-31 05:07 发表

用双引号
2
$filename -> "$filename"

3

for f in *.txt; do
base=`basename "$f" .txt`
mv "$f" "$base.text"
done



2 得更该方法,是把 哪个 Filename 加上双引号? 都加吗?

论坛徽章:
0
8 [报告]
发表于 2009-01-31 05:18 |只看该作者
原帖由 ynchnluiti 于 2009-1-31 05:14 发表
另外
1
c)
   ps -u ced4033  这个不能显示所有exe 文件吧
2
输入0也会提示"Supplied file name does not exits in current directory"




ced4033 是我的用户名,我就是在我的用户名的目录下面。

论坛徽章:
0
9 [报告]
发表于 2009-01-31 05:23 |只看该作者
原帖由 cfu1 于 2009-1-31 05:18 发表




ced4033 是我的用户名,我就是在我的用户名的目录下面。



他的要求是,显示所有可执行文件(.exe)吧。不包括 其他用户 的。 那就是只显示 我 的。
好象是这个意思。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
10 [报告]
发表于 2009-01-31 05:26 |只看该作者
原帖由 cfu1 于 2009-1-31 05:17 发表

2 得更该方法,是把 哪个 Filename 加上双引号? 都加吗?

是的。测试的时候输入特殊文件名试试(比如空文件名,含空格)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP