`
huangjun_mail
  • 浏览: 117702 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初学Shell

F# 
阅读更多

    最近一直在学习Shell,深感系统命令的博大精深,由其是管道和重定向更是惊叹不已。于是写了个小程序练练手:


<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->  1#CD管理系统
  2#!/bin/sh
  3#==========================
  4#定义全局变量
  5#cdinfopath:CD基本信息存储路径
  6#cdsongpath:CD歌曲存储文件路径
  7#temppath:临时文件路径
  8#pcdcode:CD代码
  9#==========================
 10cdinfopath="cdtfile.cdb"
 11cdsongpath="cdfile.cdb"
 12temppath="/tmp/cdb.$$"
 13pcdcode=""
 14
 15trap 'rm -f $temppath echo " 用户中断程序,系统现在退出!sleep 5" '  EXIT
 16
 17show_help()
 18{
 19    echo "暂时还没有帮助文档,请见谅!" 
 20    get_return 
 21}
 22
 23get_return()
 24{
 25    echo "请按任意键返回主菜单."
 26    read x
 27    return 0
 28}
 29
 30get_confirm()
 31{
 32    echo "你确定要执行操作?(y/n)"
 33    while true
 34    do
 35        read bResult
 36        case "$bResult" in
 37            Y | y ) return 0 ;;
 38            N | n ) return 1 ;;
 39            * )     
 40              echo "输入有误,请重试!"
 41        esac
 42    done
 43}
 44
 45#初始化
 46init()
 47{
 48    rm -rf $temppath
 49    if [ ! -f $cdinfopath ] ; then
 50        touch $cdinfopath
 51    fi
 52    if [ ! -f $cdsongpath ] ; then
 53        touch $cdsongpath
 54    fi
 55    
 56}
 57#插入CD基本信息
 58 insert_cd_basinfo()
 59{
 60     echo $* >> $cdinfopath
 61}
 62#插入歌曲
 63insert_cd_songs()
 64{
 65    echo $* >> $cdsongpath
 66}
 67is_exist_cdcode()
 68{
 69    local cdcode=$@
 70    grep "^${cdcode%%,}" "$cdinfopath" > $temppath
 71    set $(wc -$temppath)
 72    num="$1"
 73    if [ "$num" -gt 0 ];then
 74       return 0
 75    else
 76       return 1
 77        fi
 78}
 79
 80#添加歌曲
 81add_songs()
 82{
 83    local cdcode=$@
 84    local song=""
 85    local songnum=1
 86    clear
 87    echo "添加CD$cdcode的歌曲:"
 88    echo "<<返回主菜单(q\\Q)"
 89    while true
 90    do
 91       echo "请输入第$songnum首歌曲名称:"
 92       read temp
 93       songname=${temp%%,}
 94       if [ -"$songname" ] || [ "$temp" != "$songname" ];then
 95           echo "歌曲名称不能为空,且不能带有特殊符号逗号"
 96       else 
 97          if [ "$songname" != "q" ] && [ "$songname" != "Q" ];then
 98            songname=${songname%%,}
 99            song="$cdcode,$songnum,$songname"
100           insert_cd_songs "$song"
101            songnum=$(($songnum+1))
102          else
103             break
104          fi
105       fi           
106    done
107    if [ "$songnum" -gt 1 ];then
108       return 0
109    else
110       return 1
111    fi
112}
113#列出CD
114list_cd()
115{
116    local cdcode=$@
117    local cdname=""
118    local cdauthor=""
119    grep "^${cdcode%%,}" "$cdinfopath" > $temppath
120    IFS=","
121    read  cdcode cdname cdauthor <  "$temppath"
122     IFS=" "
123        echo "CD代码:$cdcode, CD名称:$cdname, CD作者:$cdauthor"
124    grep "^${cdcode%%,}" "$cdsongpath" > $temppath
125    echo "歌曲列表:"
126    cut -f 2- --d , "$temppath"
127    get_return
128}
129#删除CD
130rmove_cd()
131{
132   local cdcode=$@
133   grep -"^${cdcode%%,}" "$cdinfopath" > $temppath
134   mv -f $temppath $cdinfopath
135   grep -"^${cdcode%%,}" "$cdsongpath" > $temppath
136   mv -f $temppath $cdsongpath
137   echo "成功删除CD:$cdcode"
138}
139find_cd()
140{
141   local cdcode=""
142   while true
143   do
144    # clear
145     echo "请输入CD代码:"
146     echo "<<返回主菜单(q\\Q)"
147     read temp
148     cdcode=${temp%%,}
149     if [ -"$cdcode" ] ; then
150          echo "CD代码不能为空!请重新输入!"
151     else
152          if [ "$cdcode"  = "q" ] || [ "$cdcode" = "Q" ];then
153             break
154          else
155                  if is_exist_cdcode $cdcode;then
156                     pcdcode="$cdcode"
157                     return 0
158                  else
159                     pcdcode=""
160               echo "没有查找到相关CD!"   
161                  fi 
162          fi
163      fi
164   done      
165   return 1
166}
167#添加CD
168add_cd()
169{
170    clear
171    local cdcode=""   #CD代码
172    local cdname=""   #CD名称
173    local cdauthor="" #CD作者
174    echo "添加CD:"
175    while true
176    do
177        echo "请输入CD代码:"
178        read temp
179        cdcode=${temp%%,}
180        if [ -"$cdcode" ];then
181          echo "CD代码不能为空!请重新输入!"    
182        else
183           if is_exist_cdcode "$cdcode" ;then
184             echo "CD代码:$cdcode已经存在,请重新输入!"
185           else
186                break
187           fi
188        fi
189    done
190    
191    echo "请输入CD名称:"
192    read temp
193    cdname=${temp%%,}
194    
195    echo "请输入CD作者:"
196    read temp
197    cdauthor=${temp%%,}
198    
199    echo "你输入的CD基本信息:"
200    echo "代码:$cdcode,名称:$cdname,作者:$cdauthor"
201    
202     if [ -"$cdcode$cdname$cdauthor"  ] ; then
203       get_confirm  && {
204                 local baseinfo="$cdcode,$cdname,$cdauthor"
205             #插入CD基本信息
206             insert_cd_basinfo    "$baseinfo"
207             #添加歌曲
208color: #00800
分享到:
评论

相关推荐

    shell初学者命令加编程实例

    本资源针对的是shell初学者,旨在通过实践案例帮助学习者掌握基本的shell命令和编程技巧。 首先,了解基础的shell命令至关重要。如`ls`用于列出目录内容,`cd`用于切换目录,`pwd`显示当前工作目录,`touch`创建新...

    linux_shell从初学到精通

    本教程“Linux Shell从初学到精通”旨在引导初学者逐步掌握Shell编程的基本概念和高级技巧。 首先,我们从基础开始。在Linux环境中,Shell提供了命令行界面,用户可以通过输入命令来执行各种操作。学习Shell的第一...

    shell 编程指南pdf

    初学shell 入门好书!!!! 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    linux shell 脚本攻略

    一款相当好用的shell攻略,很适合初学shell脚本的人群使用

    LinuxShell从初学到精通

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。...

    linux shell

    **描述:“适合初学Shell编程的同学,简单易懂”** - **Shell 的定义**:Shell 是一种用于与操作系统进行交互的命令行接口,它允许用户通过输入命令来执行各种任务。 - **Shell 的类型**:Linux 系统中常用的 Shell...

    LINUX SHELL编程从初学到精通

    LINUX.SHELL编程从初学到精通,华清远见培训中心

    shell脚本初学者使用

    ### shell脚本初学者使用知识点 #### 1. Shell基础概念 Shell是用户和操作系统之间的接口,它是一个命令行解释器,用来解释用户输入的命令。Shell脚本是包含一系列命令的文本文件,能够被Shell执行,以完成特定的...

    linux shell编程从初学到精通源码4-17全

    本资源包含了从初学到精通的Shell编程源码,共计4-17全阶段的学习内容,旨在帮助用户深入理解并熟练掌握Shell编程技巧。 在学习Linux Shell编程的过程中,你将了解到以下核心知识点: 1. **基础语法**:了解Shell...

    Linux Shell编程从初学到精通

    Linux Shell编程从初学到精通,帮助不会Linux的从0到1学习Linux以及shell脚本的编写和使用。

    linux的shell脚本的学习,适合初学者使用

    ### Linux Shell 脚本学习指南 #### 一、Shell 编程的重要性 ...对于初学者而言,掌握这些基本概念和命令是进入 Shell 编程世界的良好开端。随着实践的增加,你将能够开发出更复杂的脚本来解决实际问题。

    shell脚本初学基础

    本文将详细介绍Shell脚本的基础知识,帮助初学者理解这一强大的工具。 首先,Shell是一个命令行接口,它由C语言编写,充当用户与Linux内核之间的桥梁。用户可以通过Shell来执行各种系统命令。Shell不仅是一种命令...

    LinuxShell从初学到精通第2版---源代码

    《Linux Shell从初学到精通第2版》是一本旨在帮助读者深入理解并熟练掌握Linux Shell编程的书籍。源代码作为书中的重要组成部分,为学习者提供了实践和探索的平台。在学习Linux Shell的过程中,理解并操作这些源代码...

    Linux shell命令初学解析

    ### Linux Shell命令初学解析 #### 目标 - 了解Shell的概念及其作用 - 掌握Shell的常用命令 - 学会使用vi编辑器 #### 一、了解Shell **Shell** 是用户与Linux操作系统之间的重要接口,它允许用户通过命令行的...

    shell编程从入门到精通

    本教程“Shell编程从入门到精通”旨在帮助初学者快速掌握Shell编程的核心技能,并逐步提升至高级水平。 1. **Shell基础** - **Shell类型**:不同的Linux发行版和Unix系统可能使用不同类型的Shell,如Bash(Bourne-...

    shell编程教程.chm

    初学者入门教程:Shell编程概述(一) 初学者入门教程:Shell编程概述(二) shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-...

    shell 使用 初学者

    对于初学者来说,了解和掌握Shell的使用是十分重要的,因为这能极大地提高在命令行环境中工作的效率。 首先,Shell程序是一种包含Linux或Unix命令的文本文件。通过文本编辑器如VI,你可以编写一系列命令,然后按照...

    shell编程适合初学者

    对于初学者来说,掌握Shell编程不仅可以提升日常操作效率,还能为深入学习系统管理、自动化运维打下坚实基础。 在24学时的教程中,你将逐步了解以下核心知识点: 1. **Shell介绍**:了解什么是Shell,它的作用以及...

    Shell中的函数、函数定义、作用域问题介绍

    说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下...

Global site tag (gtag.js) - Google Analytics