Ctl-M(Carriage return.)(不懂)

read echo >$2 不懂

(http://www.linuxsir.org/main/doc/abs/HTML/special-chars.html)

Ctl-M

Carriage return.

   1 #!/bin/bash

   2 # Thank you, Lee Maschmeyer, for this example.

   3

   4 read -n 1 -s -p $'Control-M leaves cursor at beginning of this line. Press Enter. \x0d'

   5                                   # Of course, '0d' is the hex equivalent of Control-M.

   6 echo >&2   #  The '-s' makes anything typed silent,

   7            #+ so it is necessary to go to new line explicitly.

   8

   9 read -n 1 -s -p $'Control-J leaves cursor on next line. \x0a'

  10            #  '0a' is the hex equivalent of Control-J, linefeed.

  11 echo >&2

  12

  13 ###

  14

  15 read -n 1 -s -p $'And Control-K\x0bgoes straight down.'

  16 echo >&2   #  Control-K is vertical tab.

  17

  18 # A better example of the effect of a vertical tab is:

  19

  20 var=$'\x0aThis is the bottom line\x0bThis is the top line\x0a'

  21 echo "$var"

  22 #  This works the same way as the above example. However:

  23 echo "$var" | col

  24 #  This causes the right end of the line to be higher than the left end.

  25 #  It also explains why we started and ended with a line feed --

  26 #+ to avoid a garbled screen.

  27

  28 # As Lee Maschmeyer explains:

  29 # --------------------------

  30 #  In the [first vertical tab example] . . . the vertical tab

  31 #+ makes the printing go straight down without a carriage return.

  32 #  This is true only on devices, such as the Linux console,

  33 #+ that can't go "backward."

  34 #  The real purpose of VT is to go straight UP, not down.

  35 #  It can be used to print superscripts on a printer.

  36 #  The col utility can be used to emulate the proper behavior of VT.

  37

  38 exit 0

 

第二章习题ex2.2.sh

习题的问题:


Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting

Prev Chapter 2. Starting Off With a Sha-Bang Next

2.2. Preliminary Exercises

   1.

      System administrators often write scripts to automate common tasks. Give several instances where such scripts would be useful.

   2.

      Write a script that upon invocation shows the time and date, lists all logged-in users, and gives the system uptime. The script then saves this information to a logfile.

Prev Home Next

Starting Off With a Sha-Bang Up Basics

我的答案:

第一题:

backup database; restart web service; backup files; etc..

第二题:

#!/bin/bash

#exercise 2.2

#show date and time

echo "The date and time is: "

date

echo "lists all logged-in users: "

who

echo "the uptime is: "

uptime

echo "write the information above into file ./ex2.2.out"

#if the file ./ex2.2.out exists, delete it at first.

#to do.

echo "The date and time is: " >>  ./ex2.2.out

date >> ./ex2.2.out

echo "lists all logged-in users: " >>  ./ex2.2.out

who  >> ./ex2.2.out

echo "the uptime is: " >>  ./ex2.2.out

uptime >> ./ex2.2.out

echo "finished the work,exit."

exit 0

学习Advanced Bash-Scripting Guide(即:高级Bash脚本编程指南)

shell脚本在unix,linux世界是一种重要和基础的技术,你看看linux中大量的系统配置文件都是shell脚本就知道了。它对这类系统的灵活和高效起着非常大的作用。

用好linux就必须有shell脚本编程的能力。

为此,我特地把学习这本电子书作为一个独立的目标,这个目标是学习linux总目标的一个分目标。

学习教程:《Advanced Bash-Scripting Guide》

学习时间:有空就看,不限时间。

准备学习两遍,第一遍粗看,看英文版,对其中的全部例子过一遍;第二遍看中文版,细看重点,并纠正自己的英文理解错误,争取学英语和学shell编程一举两得。

随时把学习心得和问题记成日记,并把英文的疑问也记下来。

欢迎有兴趣、有需要的朋友加入到这个学习目标的进行中来,大家互相交流和进步。

几个有趣的shell和一个执行结果有问题的shell

这两天在看那本讲bash编程的电子书

在这本电子书中有几个有趣的shell脚本。

1、(abs-guide-3.7/HTML/sha-bang.html)

在一个文本文件的前面加上:#!/bin/more 就可以让文本文件自己显示自己; 在一个文件前面加上:#!/bin/rm 就可以自己删除自己;

2、找出存储设备的某类文件并把它们打包:

(abs-guide-3.7/HTML/special-chars.html)

  find . -mtime -1 -type f -print0 | xargs -0 tar rvf "bak.tar"

3、一个执行结果不像书上说的那样的shell:

(abs-guide-3.7/HTML/special-chars.html)


Ctl-H

"Rubout" (destructive backspace). Erases characters the cursor backs over while backspacing.

   1 #!/bin/bash

   2 # Embedding Ctl-H in a string.

   3

   4 a="^H^H"                  # Two Ctl-H's (backspaces).

   5 echo "abcdef"             # abcdef

   6 echo -n "abcdef$a "       # abcd f

   7 #  Space at end  ^              ^ Backspaces twice.

   8 echo -n "abcdef$a"        # abcdef

   9 #  No space at end                Doesn't backspace (why?).

  10                           # Results may not be quite as expected.

  11 echo; echo

(据说)目前最好的BASH教程简介及中英文版本下载(转

(转自:http://www.linuxsir.org/main/?q=node/140

Advanced Bash-Scripting Guide (包括中译本)

作者:thegrendel

主页:http://personal.riverusers.com/~thegrendel

中译本:杨春敏(chunmin.yang at gmail.com) 黄毅 (linuxprogram at gmail.com)

点评: 目前最好的BASH教程,内容全面,详尽无比,有很多脚本实例;最重要的是作者一直跟更新和修正此文档,目前的英文版本是Version 3.9;中文版最新版本是3.7.3.

目录

一、译者序

二、在线文档

三、文档下载

四、译者手记;

五、中译本更新日志;

+++++++++++++++++++++++++++++++++++++++++

正文

+++++++++++++++++++++++++++++++++++++++++

一、译者序

毫无疑问,UNIX/Linux最重要的软件之一就是shell,目前最流行的shell被称为Bash(Bourne Again Shell),几乎所有的Linux和绝大部分的UNIX都可以使用Bash。作为系统与用户之间的交互接口,shell几乎是你在UNIX工作平台上最亲密的朋友,因此,学好shell,是学习Linux/UNIX的的开始,并且它会始终伴随你的工作学习。

shell是如此地重要,但令人惊奇的是,介绍shell的书没有真正令人满意的。所幸的是,我看到了这本被人称为abs的书,这本书介绍了bash大量的细节和广阔的范围,我遇到的绝大部分的技术问题--无论是我忘记的或是以前没有发现的--都可以在这本书里找到答案。这本使用大量的例子详细地介绍了 Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性,在书中还有许多练习可以引导你思考,以得到更深入的知识。无论你是新手还是老手,或是使用其他语言的程序员,我能肯定你能在此书用受益。而本书除了介绍BASH的知识之外,也有许多有用的关于 Linux/UNIX的知识和其他shell的介绍。

在看到本书的英文版后,我决定把它翻译出来,在Linuxsir论坛上结识了译者之一杨春敏共同翻译这本书,600多页的书是本大部头的书,我们花了6个月的业余时间才翻译完了。

关于版权的问题,英文版的作者Mendel Cooper对英文版的版权做了详细的约定,请参考:Appendix Q. Copyright。中文版版权由译者杨春敏和黄毅共同所有,在遵守英文版版权相应条款的条件下,欢迎在保留本书译者名字和版权说明以非盈利的方式自由发布此中文版,以盈利目的的所有行为必须联系英文作者和两位中文译者以获得许可。

本书得以成稿,我(黄毅)要多谢我的女朋友,本该给予她的时间我用来了翻译,多谢你的理解,你是一个很棒的女朋友!

译者 杨春敏 黄毅

下载地址:

1、本站下载:

附件:ads-guide.zip,2163767 bytes(内含英文3.7版和中文3.7版)

2、转载地下载页面

http://www.linuxsir.org/main/?q=node/140

3、转载地的在线文档

在线浏览(中文)《高级Bash脚本编程指南》

在线浏览(英文)《Advanced Bash-Scripting Guide》