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

Linux shell脚本全面学习5

阅读更多
让我们再看两个例子:
  二进制到十进制的转换
  脚本 b2d 将二进制数 (比如 1101) 转换为相应的十进制数。这也是一个用expr命令进行数学运算的例子:
  #!/bin/sh
  # vim: set sw=4 ts=4 et:
  help()
  {
  cat <
  b2h -- convert binary to decimal
  USAGE: b2h [-h] binarynum
  OPTIONS: -h help text
  EXAMPLE: b2h 111010
  will return 58
  HELP
  exit 0
  }
  error()
  {
  # print an error and exit
  echo "$1"
  exit 1
  }
  lastchar()
  {
  # return the last character of a string in $rval
  if [ -z "$1" ]; then
  # empty string
  rval=""
  return
  fi
  # wc puts some space behind the output this is why we need sed:
  numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
  # now cut out the last char
  rval=`echo -n "$1" | cut -b $numofchar`
  }
  chop()
  {
  # remove the last character in string and return it in $rval
  if [ -z "$1" ]; then
  # empty string
  rval=""
  return
  fi
  # wc puts some space behind the output this is why we need sed:
  numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
  if [ "$numofchar" = "1" ]; then
  # only one char in string
  rval=""
  return
  fi
  numofcharminus1=`expr $numofchar "-" 1`
  # now cut all but the last char:
  rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`
  }
  while [ -n "$1" ]; do
  case $1 in
  -h) help;shift 1;; # function help is called
  --) shift;break;; # end of options
  -*) error "error: no such option $1. -h for help";;
  *) break;;
  esac
  done
  # The main program
  sum=0
  weight=1
  # one arg must be given:
  [ -z "$1" ] && help
  binnum="$1"
  binnumorig="$1"
  while [ -n "$binnum" ]; do
  lastchar "$binnum"
  if [ "$rval" = "1" ]; then
  sum=`expr "$weight" "+" "$sum"`
  fi
  # remove the last position in $binnum
  chop "$binnum"
  binnum="$rval"
  weight=`expr "$weight" "*" 2`
  done
  echo "binary $binnumorig is decimal $sum"
  该脚本使用的算法是利用十进制和二进制数权值 (1,2,4,8,16,..),比如二进制"10"可以这样转换成十进制:
  0 * 1 + 1 * 2 = 2
  为了得到单个的二进制数我们是用了lastchar 函数。该函数使用wc –c计算字符个数,然后使用cut命令取出末尾一个字符。Chop函数的功能则是移除最后一个字符。
  文件循环程序
  或许您是想将所有发出的邮件保存到一个文件中的人们中的一员,但是在过了几个月
  以后,这个文件可能会变得很大以至于使对该文件的访问速度变慢。下面的 脚本rotatefile
  可以解决这个问题。这个脚本可以重命名邮件保存文件(假设为outmail)为outmail.1,
  而对于outmail.1就变成了outmail.2 等等等等...
  #!/bin/sh
  # vim: set sw=4 ts=4 et:
  ver="0.1"
  help()
  {
  cat <
  rotatefile -- rotate the file name
  USAGE: rotatefile [-h] filename
  OPTIONS: -h help text
  EXAMPLE: rotatefile out
  This will e.g rename out.2 to out.3, out.1 to out.2, out to out.1
  and create an empty out-file
  The max number is 10
  version $ver
  HELP
  exit 0
  }
  error()
  {
  echo "$1"
  exit 1
  }
  while [ -n "$1" ]; do
  case $1 in
  -h) help;shift 1;;
  --) break;;
  -*) echo "error: no such option $1. -h for help";exit 1;;
  *) break;;
  esac
  done
分享到:
评论

相关推荐

    Linux-shell脚本全面学习.pdf

    Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...

    《Linux shell脚本全面学习》pdf版电子书

    ### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...

    Linux shell脚本全面学习.doc

    Linux Shell脚本是一种强大的自动化工具,它允许用户编写一系列命令以执行特定任务,尤其是在Linux操作系统中。本篇文章将深入探讨Linux Shell脚本的基础知识,包括语法、变量、环境变量、命令以及流程控制。 首先...

    linux脚本shell学习笔记

    shell学习基本命令,可以帮助初学者快速掌握较全面的shell脚本知识

    Linux shell 脚本全面学习

    ### Linux Shell 脚本全面学习 #### 一、Linux脚本编写基础 ##### 1.1 语法基本介绍 **1.1.1 开头** - **Shebang**: 在 Linux shell 脚本中,第一行必须是 shebang 行,格式为 `#!/bin/sh` 或者 `#!/usr/bin/env...

    LINUX SHELL 脚本攻略

    本书的第三版包含了全面的Shell脚本知识,不仅适合初学者入门,也适合经验丰富的系统管理员和开发人员进一步提高。 Linux系统中常用的Shell类型有多种,例如bash、ksh、csh、zsh等,不同的Shell有不同的语法和特性...

    Linux shell 脚本攻略源代码第二版

    在IT领域,Linux Shell脚本是系统管理员和开发者日常工作中不可或缺的工具,它允许用户通过命令行接口自动化执行一系列任务。《Linux shell 脚本攻略-第二版》是一本深受赞誉的书籍,旨在帮助读者深入理解并掌握...

    Linux 命令与Shell 脚本编程pdf书籍

    《Linux命令行与Shell脚本编程大全》是一本专为Linux初学者编写的经典教材,旨在帮助读者深入理解和掌握Linux操作系统中的基本命令行操作以及Shell脚本编程技术。这本书全面覆盖了从基础到进阶的各种主题,对于想要...

    Linux-shell脚本全面学习.doc

    Linux Shell脚本全面学习 Shell脚本是Linux操作系统中一种强大的工具,用于自动化日常任务,进行文件管理和系统管理。在Linux环境中,shell脚本是一种基于文本的编程语言,它允许用户编写一系列命令,以实现批处理...

    Linux Shell 脚本攻略 中文 第三版和源码

    "Linux Shell 脚本攻略 中文 第三版和源码"提供了全面的学习资源,帮助你深入理解并熟练掌握Shell脚本编程。 首先,让我们了解什么是Linux Shell。Linux Shell是操作系统内核与用户交互的界面,它是命令行解释器,...

    Linux学习资料及shell脚本实例

    在IT领域,Linux操作系统及其相关的shell脚本编程是不可或缺的一部分,尤其对于系统管理员、开发者以及对计算机技术有深厚兴趣的学习者来说。这份“Linux学习资料及shell脚本实例”涵盖了Linux的基础知识和实用技巧...

    Linux-11shell脚本全面学习.docx

    Linux-11shell脚本全面学习.docx

    Linux-11shell脚本全面学习.pdf

    Linux-11shell脚本全面学习.pdf

Global site tag (gtag.js) - Google Analytics