2022081班李亚楠20220927
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相关推荐
- 2022081班李亚楠20220905
1.使用指针实现 strcpy.strcat 函数的功能 #include <stdio.h>int main(int argc, const char *argv[]) {/***使用指 ...
- 2022081班李亚楠20220914
//选择排序(作业) void list_select_sort(seqlist *S);//按位置查找,输出数据(作业) void list_search_pos(seqlist *S, int p ...
- 2022081班李亚楠20220920
1.中序遍历:ADEFGHMZ 后序遍历:AEFDHZMG 2.前序遍历: GDAFEMHZ 中序遍历: ADEFGHMZ 1.前序遍历: GDAFEMHZ 2.后序遍历:AE ...
- 2022081班李亚楠20220926
1.通过命令行传参给shell脚本文件传入两个字符串,把数值分别赋值给两个变量,实现两个变量的数值交换,然后输出两个变量的数值. #!/bin/bash #交换两个变量的值#从外部传参给变量 var1 ...
- 2022081班李亚楠20220901
1.通过键盘输入6名学生的成绩,输出6名学生的成绩,使用冒泡法对班级学生的成绩升序排序,输出排序后成绩 #include <stdio.h>int main(int argc, const ...
- 2022081班李亚楠20220902
1.从终端中输入一串字符,求出空格的个数: ab_cd_e_\n --->遇到\n表示输入结束 ---->数组中存储ab_cd_e ----->求出空格个数 #inc ...
- 2022081班李亚楠20220829
1.从终端输入一个字符:如果是大写的 转换成小写,如果是小写的 转换成大写,如果是 0-9 按照 %d 输出对应整型的 0-9,其他字符 转换成 #并输出. #include <stdi ...
- 2022081班李亚楠20220915
//尾删 (作业) int list_delete_tail(LinkList L); //尾删 (作业) int list_delete_tail(LinkList L) {if(NULL==L | ...
- 2022081班李亚楠20220916
1.双向链表尾插法 //尾插法 void list_insert_tail(DoubleLink D, datatype e) {// 判断if(NULL==D){printf("不合法,尾 ...
最新文章
- NBT:牛瘤胃微生物组的4941个宏基因组组装基因组(MAG)
- 下载和安装Nginx之配置选项
- 交互式线上科学期刊Distill上线,Ian Goodfellow表示“学ML就找它”
- 开发者应如何看待iOS平台和Android平台
- 华为机试HJ77:火车进站
- java 构建位图_调整位图大小而不创建新位图
- 计算机物联网工程专业考研,物联网工程专业考研方向
- 通过网易云API爬取评论
- 16进制数组转成10进制 qt_QT 16进制 ASII 10进制 转换
- 汇编语言小写字母转换为大写字母
- Java买飞机票代码
- js数组要用的方法:push、pop、unshift、shift、splice、reverse、sort、concat、join、slice、indexof、foreash、map、filter
- mysql基础约束详解
- matlab模拟双星问题,物理定律、数学模型告诉你,天下有情人终将分手!
- 诺贝尔奖获得者平均年龄是多少?属于我们的时间好像不多了
- ArchiCAD与Revit深度对比
- re模块02-re模块
- 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间
- Latex 数学公式 学习
- php+转为文本,PHP将HTML转换成文本的实现代码
热门文章
- 应用程序池20分钟不工作后自动关闭
- 用css画圆的长度固定的1/4边
- 绑定事件和取消绑定事件
- 解决docker中 pytz.exceptions.UnknownTimeZoneError: ‘Etc/UTC‘ 错误
- Pycharm 修改html注释
- Redis安装详细步骤
- SQL Server数据库单用户模式设置
- C语言中字符串赋值处理方式,C语言中字符串赋值处理方式
- ❤️数据可视化❤️:基于Echarts + GeoJson实现的地图视觉映射散点(气泡)组件【20】 - 山东省
- phpmailer 发送图片