巧用Shell编程实现DOS风格的Linux命令行

如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时,一定会感到无所适从。你所熟悉的DOS命令再Linux中基本不存在。摆在你面前的是一大堆要记背的命令。

一种替代方案是利用强大的Linux外壳命令编写shell脚本,让你在Linux下也能用DOS命令。下面告诉你怎么做。

shell脚本编写基础

从定时备份到执行简单命令,Linux的shell脚本可以执行各种功能。几乎所有的程序都可以用shell脚本来运行。在脚本中甚至可以包含一些简单的条件选择。shell脚本的基本格式如下:

#!/bin/sh ... Your commands here ...  

注意文件以#!/bin/sh开始。这条语句告诉操作系统用来解释脚本的程序位置。大多数系统会有/bin/sh目录,因为该目录包含root用户的标准shell程序。在大部分系统中你也可以指定/bin/bash目录。

每种shell的脚本都有所不同。一些shell,比如bash,支持比标准shell更多的命令。在大多数Linux版本中sh实际上就是bash。

从脚本运行命令十分简单,很像在Windows DOS提示符下运行命令。举个例子,通过下面这段语句可以拷贝文件:

#!/bin/sh cp file1 file2 mv file2 file3 echo "complete" > complete.txt  

自动执行命令对那些不需人工干预的任务很有用,但对一般用户来说并不那么有用。为此,shell脚本在执行过程中允许用户输入命令行参数,然后利用输入的参数运行命令。脚本中输入参数用$1到$9表示。如果你曾写过DOS批处理文件,你会发现批处理文件中也有类似功能,只是它用的是%1、%2等来代表输入参数。下面举例来说怎样使用命令行参数:

#!/bin/sh cp $1 $2  

上段脚本接受2个命令行参数,第一个是要拷贝的原文件,第二个是拷贝的目标文件。运行脚本的命令格式是:./myscript file1 file2,myscript代表脚本文件名。命令行选项也可以通过这种方式传递,如:

#!/bin/sh cp $1 $2 $3  

键入./copy –r sourcedir destdir形式的命令执行上段脚本,即可递归拷贝$2目录下所有文件到$3目录下。选项$1为-r时能让cp命令递归拷贝所有文件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ce41e9aceb112ed2c7e0f756b8df1740.html