Shell脚本编程实践——第3关:使用Shell脚本创建文件目录

这篇具有很好参考价值的文章主要介绍了Shell脚本编程实践——第3关:使用Shell脚本创建文件目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任务描述

本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

相关知识

为了完成本关任务,你需要掌握:1.Shell脚本创建目录的命令语法,2.如何为文件设置权限。

Shell创建文件目录并设置权限

mkdir是Linux操作系统中用来创建目录的命令,使用语法为:

 mkdir [-选项] dirName

选项:

  • -p是确认目录名称是否已存在,不存在则新建一个;
  • -m是在创建目录的同时设置文件的权限。

示例: 1)在home目录下新建一个mydir文件夹 mkdir -p /home/mydir 2)同时创建多个目录: mkdir -p dir1 dir2 dir3 3)创建目录时同时设置其权限 mkdir -m 700 mydir #创建目录mydir,并赋予所属用户所有权限

权限说明:

  • 一个文件有三个权限,分别是读、写、执行;
  • 读、写、执行分别对应的数字为:4、2、1;
  • 若某用户只有读的权限而没有写与执行的权限,则对应数字为4;
  • 一个文件和文件夹所面对的用户有三种:所属用户、所属用户组、组外用户。若三种权限对应数字为777,则说明所属用户、所属用户组及组外用户均拥有该文件或文件夹的全部权限。
Shell流程控制
1) if else

if else语句语法格式:

if conditionthen   ...else   ...fi

if else-if else 语法格式:

if condition1then    ...elif condition2 then     ...else    ...fi
2) for 循环

for循环语法格式:

for var [in item1 item2 ... itemN]do    ...done

实例:依次读取列表中的数字。

#!/bin/bashfor int in 1 2 3 4 5do    echo "The value is: $int"done
3)while 循环

while循环 语法格式:

while conditiondo    ...done

实例:定义一个变量a,初值为1。当a小于10时,每次循环输出a的值并令a的值加1。

 #!/bin/bashint=1while(( $int<=5 ))do    echo $int    let "int++"done
4)until 循环

until循环与while循环恰好相反,在条件为false时执行循环,直到条件为true。 until循环语法格式:

until conditiondo    ...done

实例:定义一个变量a,初值为10,每次循环输出a的值并令a=a-1。当a小于等于0时,跳出循环。

 #!/bin/basha=1until[ $a -le 0 ]do    echo $a    a=`expr $a - 1`done
5) case … esac 选择语句

case ... esac语句与其他语言中的switch...case语句类似,是一种选择分支结构。与其他语言不同的是,在Shell中使用右圆括号表示开始,用两个分号;;表示break。 case … esac 语法格式:

case 值 in模式1)    ...    ;;模式2)    ...    ;;esac

实例:根据操作系统的英文名匹配其对应的中文名称。

 #!/bin/bashos="openEuler"case "$os" in   "openEuler") echo "欧拉"   ;;   "RedHat") echo "小红帽"   ;;   "Android") echo "安卓"   ;;esac

注意:模式取值可以是变量或常数,一旦匹配到其中一个模式,执行完该模式下的命令后将不再继续匹配其他模式。若无任何模式匹配,则使用*捕获该值,类似于其他语言中的default模式。

6)跳出循环

类似其他编程语言,Shell中也可以使用break或continue命令跳出循环。 break命令跳出循环后便不再执行,而continue命令则只跳出本次循环,直接开始下一次循环。 实例:循环读取用户输入的一个大于0的数字,若数字大于100,则结束循环;若数字小于10,则继续下一轮循环。

 #!/bin/bashwhile :do  echo "请输入一个大于0的数字:"  read num  if [ $num -lt 10 ]   then    echo "继续..."    continue  elif [ $num -gt 100 ]  then    echo "游戏结束!"    break  fidone

执行结果如下: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIjGOIuW-1666196978327)(https://data.educoder.net/api/attachments/2164473)]

编程要求

根据提示,在右侧编辑器补充代码,创建文件目录并按要求设置权限。

测试说明

平台会对你编写的代码进行测试,检查/home目录下是否存在userdata目录、userdata目录下是否包含user1~user5这五个子目录以及且此五个子目录的权限是否设置正确。


开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-420826.html

 #!/bin/bash
 #请在此处键入你的代码

 # 创建 userdata 目录
 if [ -d /home/userdata ]
 then
    chmod 754 /home/userdata
 else
    mkdir -m 754 /home/userdata
fi

 i=1
 temp=/home/userdata/user
 while [ $i -le 5 ]
 do
    if [ -d $temp$i ]
    then
        chmod 754 $temp$i
    else
        mkdir -m 754 $temp$i
    fi
    i=$[$i+1]
 done

到了这里,关于Shell脚本编程实践——第3关:使用Shell脚本创建文件目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 系统shell脚本编程笔记——脚本入门

    目录 1、创建shell脚本文件  2、显示消息 3、 环境变量 4、用户变量 5、命令替换 ​编辑  6、重定向输入与输出 6.1、输出重定向  6.2、输入重定向 ​编辑 7、执行数学运算 7.1、expr命令 7.2、bc的基本用法  8、退出脚本 完整笔记请前往此处获取:https://download.csdn.net/download/qq

    2024年02月06日
    浏览(44)
  • 【shell脚本编程大全-笔录02】

    传送门:【shell脚本编程大全-笔录01】 ​ 使用正则表达式最大的问题在于有不止一种类型的正则表达式。Linux中的不同应用程序可能会用不同类型的正则表达式。 ​ 正则表达式是通过正则表达式引擎实现的。正则表达式引擎是一套底层软件,负责解释正则表达式模式并使用

    2024年02月15日
    浏览(32)
  • 【shell脚本编程大全-笔录01】

    全局、局部环境变量 ​ 用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用; ​ 系统变量(全局变量):影响范围是整个系统 ; 系统环境变量基本上都是使用全大写字母,以区别于普通用户的环境变量。 查看 env、printenv和set之间的差异: 1、set命令会显

    2024年02月16日
    浏览(31)
  • Linux——Shell脚本编程(1)

    1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理。 2)对于 JavaEE 和 Python 程序员来说,工作的需要,要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。 3) 对于大数据程序员来说,需要编写Shell程序来管

    2024年02月09日
    浏览(46)
  • Shell脚本编程--Day3

    内置和外置命令的区别: 可以通过type命令去检测 内置命令 : 在系统启动的时候加载入内存,常驻内内存,执行效率高,但是占用资源。会在当前shell进程去执行,是shell的一部分。 外置命令 : 用户需要从硬盘读取程序文件,再读入内存加载, 又叫自己单独下载的文件系统

    2024年02月07日
    浏览(33)
  • Day14 01-Shell脚本编程详解

    第一章 Shell编程【重点】 1.1. Shell的概念介绍 1.1.1. 命令解释器 Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过

    2024年02月12日
    浏览(27)
  • Shell脚本编程入门--Day2

    echo -n 不换行输出 -e 解析字符串中的特殊符号 (n, r, t, b), printf是直接识别特殊符号的 eval 执行多个命令 没什么太大作用 exec 不创建子进程执行后面的命令, 并且exit export 设置环境变量 time 可以计算命令执行时间 ${变量} 返回变量的值 ${#变量} 返回变量的长度 ${变量 :

    2024年02月06日
    浏览(28)
  • Linux_5_Shell脚本编程

    程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构: 数据在计算机中的类型和组织方式 面向过程语言 做一件事情,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理 问题规模小,可以步骤化,按部

    2024年02月13日
    浏览(34)
  • Linux实验4 shell脚本编程基础

    1.假设在/tmp下有以当前用户的帐号命名的目录,请在命令行中临时修改环境变量PATH的值,要求该目录的路径附加到该变量的最后。 2.请在命令行中临时设置命令输入提示行格式为:“当前系统时间-用户#”。 3.在命令行定义一个字符串变量str,并且赋值为“test for shell”,然

    2024年04月17日
    浏览(40)
  • Shell脚本——编程规范与echo命令

    目录 一.Shell脚本编程概述 1.基本概念 2.作用 3.Linux系统中常见的Shell脚本种类 4.应用场景 5.问题补充 5.1 为什么系统上合法的Shel1要写入/etc/she1ls这个文件? 5.2 用户什么时候可以取得shell来工作?用户默认会取得哪一个shell? 二.Shell脚本的构成规范 三. Shell脚本的执行 1.脚本执行

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包