1.复习今日内容

2.在终端输入一个文件名,判断文件是否为空,如果不为空,判断文件是否是普通文件,如果是普通文件,就判断是否具有写权限,没有写权限,就加上写权限,并在文件最后追加一行”hello world“

 1 #!/bin/bash2 3 #/*******判断文件 追加内容********/4 5 read -p "请输入查询文件的绝对路径:" dirname6 7 if [ -s $dirname ]8 then9     echo 您输入的文件不为空
10     if [ -f $dirname ]
11     then
12         echo 您输入的是普通文件
13         if [ -w $dirname ]
14         then
15             echo 您输入的文件有写权限
16             echo "hello word" >>$dirname
17         else
18             chmod 222 $dirname
19             echo "hello word" >>$dirname
20         fi
21     fi
22 fi

测试结果

ubuntu@ubuntu:9.27$ ./1.sh
请输入查询文件的绝对路径:/home/ubuntu/9.27/1.c
您输入的文件不为空
您输入的是普通文件
您输入的文件有写权限
ubuntu@ubuntu:9.27$ ls -l
总用量 44
-rw-rw-r-- 1 ubuntu ubuntu  11 九月 27 19:16 1.c
-rwxrwxrwx 1 ubuntu ubuntu 406 九月 27 19:15 1.sh
-rwxrwxrwx 1 ubuntu ubuntu 400 九月 27 10:27 arr.sh
-rwxrwxrwx 1 ubuntu ubuntu  84 九月 27 15:52 echo.sh
-rwxrwxrwx 1 ubuntu ubuntu 472 九月 27 14:13 expr.sh
-rwxrwxrwx 1 ubuntu ubuntu  99 九月 27 17:14 if.sh
-rwxrwxrwx 1 ubuntu ubuntu  86 九月 27 18:41 read_arr.sh
-rwxrwxrwx 1 ubuntu ubuntu 221 九月 27 14:59 read.sh
-rwxrwxrwx 1 ubuntu ubuntu 201 九月 27 10:43 test1.sh
-rwxrwxrwx 1 ubuntu ubuntu 158 九月 27 12:37 test2.sh
-rwxrwxrwx 1 ubuntu ubuntu 162 九月 27 12:48 test3.sh
ubuntu@ubuntu:9.27$ cat 1.c
hello word

3.在家目录/home/ubuntu 下创建两个目录文件 file_dir 和 dir_dir,如果家目录下有这两个文件夹,就不需要创建,询问用户是否要对目录清空[Y/N], 输入一个文件路径,判断这个文件路径是否存在,如果存在,把这个目录下的目录文件复制到 dir_dir 中,如果是其他文 件,复制到 file_dir 下,统计复制的文件和目录文件的个数,并打印出来

 1 #!/bin/bash2 3 path1=/home/ubuntu/file_dir4 path2=/home/ubuntu/dir_dir5 6 if [ -d "$path1" ]7 then8     echo "file_dir目录文件存在"9     read -p "是否清空目录文件[Y/N]" answer
10
11     if [ 'Y' == "$answer" ]
12     then
13         rm -r "$path1"/*
14     fi
15
16 else
17     echo "file_dir不存在,创建之"
18     mkdir "$path1"
19 fi
20
21 if [ -d "$path2" ]
22 then
23     echo "dir_dir目录文件存在"
24     read -p "是否清空目录文件[Y/N]" answer
25
26     if [ 'Y' == "$answer" ]
27     then
28         rm -r "$path2"/*
29     fi
30
31 else
32     echo "dir_dir不存在,创建之"
33     mkdir "$path2"
34 fi
35
36 read -p "请输入目标路径:" path3 # 绝对路径
37
38 count1=0
39 count2=0
40
41 if [ -d "$path3" ]
42 then
43     echo "$path3 存在"
44
45     for file in `ls "$path3"`
46     do
47         echo $file
48
49         if [ -d "$path3/$file" ]
50         then
51             echo "$file是目录文件"
52             cp -r $path3/$file $path2
53             ((count1++))
54         else
55             echo "$file是其它文件"
56             cp $path3/$file $path1
57             ((count2++))
58         fi
59     done
60     echo "复制的文件目录有$count1个,其它文件有$count2个"
61
62 else
63     echo "$path3"不存在
64 fi

测试结果

ubuntu@ubuntu:9.27$ ./2.sh
file_dir不存在,创建之
dir_dir不存在,创建之
请输入目标路径:/home/ubuntu/9.28
/home/ubuntu/9.28 存在
break.sh
break.sh是其它文件
case.sh
case.sh是其它文件
continue.sh
continue.sh是其它文件
for.sh
for.sh是其它文件
while.sh
while.sh是其它文件
复制的文件目录有0个,其它文件有5个
ubuntu@ubuntu:9.27$ cd ../
ubuntu@ubuntu:~$ ls
8.29  9.19  9.28  9.9        nfs
8.30  9.2   9.3   Desktop    Pictures
9.1   9.20  9.4   dir_dir    Public
9.13  9.21  9.5   Documents  Templates
9.14  9.23  9.6   Downloads  Videos
9.15  9.26  9.7   file_dir
9.16  9.27  9.8   Music
ubuntu@ubuntu:~$ cd dir_dir/
ubuntu@ubuntu:dir_dir$ ls
ubuntu@ubuntu:dir_dir$ dc ../
dc: Will not attempt to process directory ../
ubuntu@ubuntu:dir_dir$ cd ../
ubuntu@ubuntu:~$ ls
8.29  9.19  9.28  9.9        nfs
8.30  9.2   9.3   Desktop    Pictures
9.1   9.20  9.4   dir_dir    Public
9.13  9.21  9.5   Documents  Templates
9.14  9.23  9.6   Downloads  Videos
9.15  9.26  9.7   file_dir
9.16  9.27  9.8   Music
ubuntu@ubuntu:~$ ls ./file_dir/
break.sh  continue.sh  while.sh
case.sh   for.sh

2022081班李亚楠20220927相关推荐

  1. 2022081班李亚楠20220905

    1.使用指针实现 strcpy.strcat 函数的功能 #include <stdio.h>int main(int argc, const char *argv[]) {/***使用指 ...

  2. 2022081班李亚楠20220914

    //选择排序(作业) void list_select_sort(seqlist *S);//按位置查找,输出数据(作业) void list_search_pos(seqlist *S, int p ...

  3. 2022081班李亚楠20220920

    1.中序遍历:ADEFGHMZ       后序遍历:AEFDHZMG 2.前序遍历: GDAFEMHZ       中序遍历: ADEFGHMZ 1.前序遍历: GDAFEMHZ 2.后序遍历:AE ...

  4. 2022081班李亚楠20220926

    1.通过命令行传参给shell脚本文件传入两个字符串,把数值分别赋值给两个变量,实现两个变量的数值交换,然后输出两个变量的数值. #!/bin/bash #交换两个变量的值#从外部传参给变量 var1 ...

  5. 2022081班李亚楠20220901

    1.通过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩 #include <stdio.h>int main(int argc, const ...

  6. 2022081班李亚楠20220902

    1.从终端中输入一串字符,求出空格的个数: ab_cd_e_\n --->遇到\n表示输入结束         ---->数组中存储ab_cd_e ----->求出空格个数 #inc ...

  7. 2022081班李亚楠20220829

    1.从终端输入一个字符:如果是大写的 转换成小写,如果是小写的 转换成大写,如果是 0-9   按照 %d  输出对应整型的  0-9,其他字符 转换成 #并输出. #include <stdi ...

  8. 2022081班李亚楠20220915

    //尾删 (作业) int list_delete_tail(LinkList L); //尾删 (作业) int list_delete_tail(LinkList L) {if(NULL==L | ...

  9. 2022081班李亚楠20220916

    1.双向链表尾插法 //尾插法 void list_insert_tail(DoubleLink D, datatype e) {// 判断if(NULL==D){printf("不合法,尾 ...

最新文章

  1. NBT:牛瘤胃微生物组的4941个宏基因组组装基因组(MAG)
  2. 下载和安装Nginx之配置选项
  3. 交互式线上科学期刊Distill上线,Ian Goodfellow表示“学ML就找它”
  4. 开发者应如何看待iOS平台和Android平台
  5. 华为机试HJ77:火车进站
  6. java 构建位图_调整位图大小而不创建新位图
  7. 计算机物联网工程专业考研,物联网工程专业考研方向
  8. 通过网易云API爬取评论
  9. 16进制数组转成10进制 qt_QT 16进制 ASII   10进制 转换
  10. 汇编语言小写字母转换为大写字母
  11. Java买飞机票代码
  12. js数组要用的方法:push、pop、unshift、shift、splice、reverse、sort、concat、join、slice、indexof、foreash、map、filter
  13. mysql基础约束详解
  14. matlab模拟双星问题,物理定律、数学模型告诉你,天下有情人终将分手!
  15. 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
  16. ArchiCAD与Revit深度对比
  17. re模块02-re模块
  18. 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间
  19. Latex 数学公式 学习
  20. php+转为文本,PHP将HTML转换成文本的实现代码

热门文章

  1. 应用程序池20分钟不工作后自动关闭
  2. 用css画圆的长度固定的1/4边
  3. 绑定事件和取消绑定事件
  4. 解决docker中 pytz.exceptions.UnknownTimeZoneError: ‘Etc/UTC‘ 错误
  5. Pycharm 修改html注释
  6. Redis安装详细步骤
  7. SQL Server数据库单用户模式设置
  8. C语言中字符串赋值处理方式,C语言中字符串赋值处理方式
  9. ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【20】 - 山东省
  10. phpmailer 发送图片