1.在终端输入一个文件名,判断文件是否为空,如果不为空,判断文件是否是普通文件,如果是普通文件,就判断是否具有写权限,没有写权限,就加上写权限,并在文件最后追加一行“helloworld”
1 #!/bin/bash
2
3 read $1
4 #if test -s /home/ubuntu/yuyu/$1
5 if [ -s /home/ubuntu/yuyu/$1 ]
6
7 then
8 echo $1为空
9 else
10 echo $1不是空
11 #if test -f /home/ubuntu/~/yuyu/$1
12 if [ -f /home/ubuntu/~/yuyu/$1 ]
13
14 then
15 echo $1不是普通文件
16 else
17 echo $1是普通文件
18 #if test -w /home/ubuntu/~/yuyu/$1
19 if [ -w /home/ubuntstu/~/yuyu/$1 ]
20
21 then
22 echo $1有写权限
23 else
24 echo $1没有写权限
25 chmod u+w /home/ubuntu/~/yuyu/$1
26 var="helloworld"
27 echo var > /home/ubuntu/~/yuyu/$1
28 fi
6.sh 11,2 Top
ubuntu@ubuntu:~/yuyu$ source 6.sh
请输入文件名:1.c
普通文件有写权限ubuntu@ubuntu:~/yuyu$ vi 1.c1 大天蓬(电影《大天蓬》主题曲)- 李袁杰 2 3 作词:宋雪苍/李袁杰 4 5 作曲:李袁杰 6 7 编曲:刘旭阳 8 9 经纪人:方国庆 10 11 企划人:王烨扬 12 13 监制:刘凯 14 15 发行人:桑爱 16 17 出品人:桑爱/刘凯 18 19 电影片方:北京麦堂娱乐传媒有限公司 20 21 发行方:北京看见文娱文化有限公司 22 23 出品方:北京看见文娱文化有限公司 24 25 美人不是凡胎生 26 27 应是仙器灵长成 28 29 既然你是神兵 30 31 为何比我更多情 32 33 深深伤的却是你 34 35 六曜五星配红妆 36 37 此生虽短情意长 38 39 惹得天怒地也恼 40 41 人间再无红颜笑 42 43 留一半相思上大道 44 45 怕什么天道轮回 46 47 什么魄散魂飞 48 49 若没有你那才叫可悲 50 51 怕什么西行无归 52 53 什么事与愿违 54 55 这一世换我护你一对 56 57 六曜五星配红妆 58 59 此生虽短情意长 60 61 惹得天怒地也恼 62 63 人间再无红颜笑 64 65 留一半相思上大道 66 67 怕什么天道轮回 68 69 什么魄散魂飞 70 71 若没有你那才叫可悲 72 73 怕什么西行无归 74 75 什么事与愿违 76 77 这一世换我护你一对 78 79 怕什么天道轮回 80 81 什么魄散魂飞 82 83 若没有你那才叫可悲 84 85 怕什么西行无归 86 87 什么事与愿违 88 89 这一世换我护你一对 90 91 这一世换我护你一对 92 hello world 93 有些权限不用写hello world
ubuntu@ubuntu:~/yuyu$ chmod u-w 1.c
ubuntu@ubuntu:~/yuyu$ source 6.sh
请输入文件名:1.c
普通文件无写权限,添加写权限:
ubuntu@ubuntu:~/yuyu$ chmod u+w 1.c
ubuntu@ubuntu:~/yuyu$ source 6.sh
请输入文件名:1.c
普通文件有写权限
ubuntu@ubuntu:~/yuyu$ vi 1.c1 #!/bin/bash 2 3 read -p "请输入文件名:" file 4 #文件不为空和是普通文件两个条件同时满足执行第一个语句块 5 if [ -s "$file" -a -f "$file" ] 6 then 7 #判断文件是否有写权限 8 if [ -w "$file" ] 9 then 10 echo 普通文件有写权限 11 echo 有些权限不用写hello world >> $file 12 else 13 echo 普通文件无写权限,添加写权限: 14 chmod u+w $file 15 echo hello world >> $file 16 fi 17 else 18 echo 2 19 fi
2.在家目录/home/ubuntu下创建两个目录文件file _dir和dir_dir,如果家目录下有这两个文件夹,就不需要创建,询问用户是否要对目录清空[Y/N],输入一个文件路径,判断这个文件路径是否存在,如果存在,把这个目录下的目录文件复制到dir_dir中,如果是其他文件,复制到file_dir下,统计复制的文件和目录文件的个数,并打印出来
ubuntu@ubuntu:~/yuyu$ source 13.sh
file_dir文件存在
是否清空文件(Y=yes,N=no)
dir_dir文件存在
是否清空文件(Y=yes,N=no)
清空dir_dir文件
rm: cannot remove '/home/ubuntu/dir_dir/*': No such file or directory
请输入目标路径/home/ubuntu/yuyu/1
bash: 13.sh: line 58: syntax error near unexpected token `else'
bash: 13.sh: line 58: `else'
ubuntu@ubuntu:~/yuyu$ ls1 #!/bin/bash 2 3 path1=/home/ubuntu/file_dir 4 path2=/home/ubuntu/dir_dir 5 #小判断是否是目录文件 6 if [ -d "$path1" ] 7 then 8 9 echo "file_dir文件存在" 10 read -p "是否清空文件(Y=yes,N=no)" answer 11 if [ "$answer" = "Y" ] 12 then 13 14 echo 清空file_dir文件 15 rm -r "$path1"/* 16 fi 17 else 18 19 echo "file_dir文件不存在,创建文件" 20 mkdir "$path1" 21 fi 22 if [ -d "$path2" ] 23 then 24 25 echo "dir_dir文件存在" 26 read -p "是否清空文件(Y=yes,N=no)" answer 27 if [ "$answer"="Y" ] 28 then 29 echo 清空dir_dir文件 30 rm -r "$ 31 fi 32 else 33 echo "dir_dir文件不存在,创建文件" 34 mkdir "$path2" 35 fi 36 #path3=$1 #通过命令行传参 37 read -p "请输入目标路径" path3 #这个路径一定输入绝对路径 38 count1=0 39 count2=0 40 if [ -d "$path3" ] 41 42 echo "$path3 存在" 43 for file in `ls "$path3"` 44 do 45 echo $file 46 if [ -d "$path3"/"$file" ] 47 then 48 echo $file是文件夹 49 cp $path3/$file $path2 -r 50 ((count1++)) 51 else 52 echo $file 是其他文件 53 cp $path3/$file $path1 54 ((count2++)) 55 fi 56 done 57 echo "复制的目录文件有$count1个复制其他文件有 $count2个" 58 else 59 echo "$path3"不存在 60 fi