`

bash编程之 第六课作业

 
阅读更多

1、脚本使用格式:

mkscript.sh [-D|--description "script description"] [-A|--author "script author"]  文件名

2、如果文件事先不存在,则创建;且前几行内容如下所示:

#!/bin/bash

# Description: script description

# Author: script author

#

3、如果文件事先存在,但不空,且第一行不是“#!/bin/bash”,则提示语法错误并退出;如果第一行是“#!/bin/bash”,则使用vim打开脚本;把光标直接定位至最后一行

4、打开脚本后关闭时判断脚本是否有语法错误如果有,提示输入y继续编辑,输入n放弃并退出;如果没有,则给此文件以执行权限;

 

 

#!/bin/bash
#

a1=$1
a2=$2
a3=$3
a4=$4
a5=$5

desc=""
if [ $1 == "-D" -o $1 == "--description" ];then
        desc=$2
elif [ $3 == "-D" -o $3 == "--description" ];then
        desc=$4
fi
if [ $# -eq 1 ];then
        filename=$1
elif [ $# -eq 3 ];then
        filename=$3
elif [ $# -eq 5 ];then
        filename=$5
else
        echo 'please use format: mkscript.sh [-D|--description "script description"] [-A|--author "script author"] filename'
        exit 1
fi

echo "desc=$desc"
echo "author=$author"
echo "filename=$filename"

if ! [ -f $filename ]; then
        touch $filename
        echo "#!/bin/bash" >> $filename
        echo "# Description: $desc" >> $filename
        echo "# Author: $author" >> $filename
        echo "#" >> $filename
elif [ -s $filename ]; then
        str=`grep -n "^#\!/bin/bash$" $filename`
        str2=${str%:*}             #find the line_number of #\!/bin/bash
        if [ $str2 -ne 1 ]; then
                echo "the first line of $filename is not #\!/bin/bash"
                exit 2
        else
                vi + $filename                
                trap "myquit" 1 2 3 15
        fi
fi


myquit(){
        bash -n $filename &> /dev/null
        if [ $? -eq 0 ]; then
                chmod +x $filename
        else
                read -p 'there is something wrong, continue to edit ? y/n : ' yesOrNo
                if [ $yesOrNo == "n" ]; then
                        exit 0
                fi
        fi
}

 

分享到:
评论

相关推荐

    linux高级bash编程(abs)

    **Linux高级Bash编程(ABS)** Bash(Bourne-Again SHell)是Linux系统中最常用的命令行解释器,也是系统脚本编写的重要工具。深入理解和掌握Bash编程,能够极大地提升Linux系统的使用效率和自动化处理能力。在本文...

    Linux高级bash编程

    高级bash编程 高级Bash脚本编程指南(一) 目录 ++++ 第一部分. 热身 1. 为什么使用shell编程 2. 带着一个Sha-Bang出发(Sha-Bang指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊...

    bash脚本编程详解

    ### bash脚本编程详解 #### 一、Bash与Bash脚本概述 **1.1 常用Shell程序** ##### 1.1.1 Shell的普遍作用 Shell是Unix和类Unix操作系统中的核心组件之一,其主要功能是解释用户的命令,并执行相应的操作。这些...

    Bash使用 文档.doc

    Bash 使用文档 bash 是一种广泛使用的 shellcript 语言,主要应用于...bash 的第一个版本发布于 1989 年。 十、bash 的应用 bash 广泛应用于 Linux 操作系统中,例如在 Linux 系统中执行命令、编写 shell 脚本等。

    高级bash脚本编程指南(中英文合集)

    shell高级编程,中英文合集,均为高清版 目录如下: 第一部分. 热身 1. 为什么使用shell 编程 2. 带着一个Sha-Bang 出发(Sha-Bang 指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 ...

    学习bash(第三版)_英文版

    - **目标群体**:本书适合对Bash的用户界面及编程能力感兴趣的读者,无论是初级还是高级用户都能从中受益。 - **内容概述**:书中不仅覆盖了Bash的基础知识,还深入探讨了其高级特性和编程技巧。 #### 2. **Bash 的...

    Advanced Bash-Scripting Guide <>

    第一部分. 热身 1. 为什么使用shell 编程 2. 带着一个Sha-Bang 出发(Sha-Bang 指的是#!) 2.1. 调用一个脚本 2.2. 初步的练习 第二部分. 基本 3. 特殊字符 4. 变量和参数的介绍 4.1. 变量替换 4.2. 变量赋值 4.3. ...

    学习Bash(第二版)中文版.pdf

    6. 脚本调试:介绍调试Bash脚本的技巧,如使用set命令、trap命令、调试命令(bash -x)等。 7. 正则表达式:了解正则表达式在文本处理中的应用,学习如何在grep、sed、awk等工具中使用它们。 8. 进程管理:涉及...

    bash-4.0 源码

    bash-4.0源码是Linux操作系统中广泛使用的Bash Shell的第四次主要版本的原始代码。Bash,全称为Bourne-Again SHell,是GNU项目的一部分,由自由软件基金会的Chet Ramey维护。它是Unix和类Unix系统中的默认Shell,...

    LINUX/UNIX Shell编程大作业

     你需要分别以硬拷贝(书面形式)和电子文档形式(副本)提交你的shell编程大作业。  你必须提交一份硬拷贝(有一个写上名字的装订好的封面)和一份含下面四个文件的电子拷贝(三份SHELL脚本和一份文本文件)。  ...

    Bash_reference_manual_2014_bashshell_

    6. **作业控制**:Bash支持后台进程(`&`)和作业控制(`fg`、`bg`、`jobs`命令)。 **总结** Bash Shell作为Linux和Unix系统的核心组件,其强大而灵活的特性为用户提供了高效的交互方式和脚本编程能力。理解并...

    Bash Pocket Reference, 2nd Edition(2016)

    ##### 第六章:命令退出状态 - **状态码**:详细说明了命令执行后的返回状态码,以及如何根据这些状态码进行条件判断。 ##### 第七章:语法 - **基本语法**:讲解了Bash脚本的基本语法结构,如条件语句、循环等。 -...

    linux操作系统,编程

    《第6章 Linux编程—内存分配与时间函数》将涵盖动态内存管理,如malloc、calloc、realloc和free,以及时间处理函数,如time、sleep和difftime,这些都是进行高效程序设计的关键。 《第7章 Linux编程—字符串处理与...

    Linux与UNIX Shell编程指南.pdf

    "Linux与UNIX Shell编程指南" Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 ...

    大三Linux专业课所有课时作业

    - 学习Linux常常需要编写Shell脚本,"Linux讲稿(第7课).doc"或"Linux讲稿(第11课).doc"可能涵盖bash脚本语言,如变量、条件语句、循环结构和函数的使用。 7. **测试和评估**: - "测试题.docx"可能是课程的...

    Linux中shell(bash)的简单模拟。___下载.zip

    bash Shell提供了许多功能,包括命令行编辑、历史记录、文件名扩展、作业控制以及脚本编程能力。以下是一些关于bash Shell的关键知识点: 1. **命令行基本操作**:用户可以通过键盘输入命令,如`ls`列出目录内容,`...

    Unix.Shell编程(第三版)

    **Unix Shell 编程(第三版)** Unix Shell编程是一种在Unix或类Unix操作系统中进行自动化任务处理的强大工具。Shell不仅是命令行界面,还是一个解释器,它接收用户输入的命令并执行相应的系统操作。本资源是《Unix ...

Global site tag (gtag.js) - Google Analytics