Linux脚本练习之script014-判断参数文件是否为 `.sh` 后缀的普通文件,如果是,则添加所有人可执行权限,否则提示非脚本文件。

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux脚本练习之script014-判断参数文件是否为 `.sh` 后缀的普通文件,如果是,则添加所有人可执行权限,否则提示非脚本文件。相关的知识,希望对你有一定的参考价值。

script014

题目

判断参数文件是否为 .sh 后缀的普通文件,如果是,则添加所有人可执行权限,否则提示非脚本文件。

分析

本题考查的知识点:

  • 自定义函数
  • if...else 条件判断语句
  • $ 提取文件后缀
  • chmod 命令
  • echo 命令

思路:

  • 参数校验,校验参数个数。
  • 读取第一个参数为脚本文件。
  • 使用 $ 提取脚本文件的后缀。
  • 判断文件后缀是否是 sh,如果是则表示该文件是一个脚本文件,则为其增加可执行权限;如果不是则给出提示信息。

脚本

#!/bin/bash

####################################
#
# 功能:判断参数文件是否为 .sh 后缀的普通文件,如果是,则添加所有人可执行权限,否则提示非脚本文件。
#
# 使用:传入一个脚本文件作为第一个参数
#
####################################

##
# 为脚本文件添加执行权限
##
function give_execute_permission() 
  # 参数校验
  if [ $# -ne 1 ]; then
      echo "请输入一个参数!"
      exit
  fi
  # 第一个参数就是脚本文件
  local script_file
  script_file=$1
  # 提取输入参数文件的后缀
  local suffix
  suffix="$script_file##*."
  # 判断后缀是否是 "sh"
  if [ "$suffix" = "sh" ]; then
      # 如果是脚本文件则直接给所有用户添加可执行权限
      chmod +x "$script_file"
  else
      # 如果不是脚本文件则给出提示信息
      echo "文件 $script_file 不是脚本文件!"
  fi


##
# 主函数
##
function main() 
  # 在主函数中调用
  give_execute_permission "$1"


# 调用主函数
main "$1"

测试

执行 ./script014.sh 脚本文件 启动脚本,如果是 shell 脚本文件则为其新增可执行权限。

以上是关于Linux脚本练习之script014-判断参数文件是否为 `.sh` 后缀的普通文件,如果是,则添加所有人可执行权限,否则提示非脚本文件。的主要内容,如果未能解决你的问题,请参考以下文章

Linux脚本练习之script013-判断当前用户对指定参数文件,是否不可读并且不可写。

Linux脚本练习之script046-统计文件中仅包含数字的行。

Linux脚本练习之script024-判断用户输入文件路径,显示其文件类型(普通,目录,链接,其它文件类型)。

Linux脚本练习之script092- 判断输入的是否为IP地址

Linux脚本练习之script092- 判断输入的是否为IP地址

Linux脚本练习之script040-传递两个整数给脚本,让脚本分别计算并显示这两个整数的和差积商。