让Linux命令加速

王朝system·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

Linux中大多数命令只做一件事,因此,通过Shell脚本语言把各种程序粘合起来使用时,就能完成复杂的任务。本文充分利用功能强大,但简单易学的小工具,给出一些实际问题的解决方案,希望使Linux更实用、更好用。

让命令“说话”

几乎每个Linux命令都有很多选项,允许使用者根据需要灵活地定制。但这给初学者带来诸多不便,一是学起来麻烦,二是容易遗忘,需要时不得不重新再来。

那么有没有办法让命令自己“说话”呢?通过Shell脚本语言可以给命令加上友好的“面孔”。示例如下:

::::::::::::::cname.sh::::::::::::::echo "Please input file name:"read oldecho "Please input new name: "read newmv $old $new

上面代码中,mv的命令格式为:

mv 原名字 新名字

echo命令格式为:

echo 字符串

read从标准输入中读入一个字符串,并存入后边的变量中,其命令格式为:

read 变量名

程序执行时显示帮助信息,提示输入相应的参数,最后通过简单的变量替换,完成改名任务这个程序。虽然只有5行,却改变了命令的行为方式,大大地增强了mv的易用性。在实际应用中,读者可根据需要替换这个小程序的命令。

处理多个文件

在前面的基础上,如果想给一批文件改名的话,那么下面这个例子就更有实用价值了。

::::::::::::::mvs.sh::::::::::::::for s in $*; do

echo "File: $s"

echo "Please input new name: "

read t

mv $s $t

if [ $? -eq 0 ]; then

echo "OK!^o^"

else

echo "Error!"

fidone

通过for循环,“命令序列”依次处理文件列表中的所有文件。$*代表所有命令行参数,这样文件列表就可以通过命令参数指定。后面的if语句测试命令的执行状态,0代表执行成功。简单部署1之后,键入“mvs .jpg”就可以轻松地批量给文件改名了。

部署方案

程序编制完成,需要仔细部署,以使安装和使用方便。

◆在用户主目录下新建bin目录(如果已建立就跳过):

mkdir ~/bin

◆把~/bin添加到PATH变量,在用户主目录下的.bashrc文件中添加下面几行:

PATH=~/bin:$PATH

export PATH

◆把测试好的程序移至bin目录,更改成简单易记的名字,并设置文件属性:

cp mvs.sh ~/bin/mvs

chmod 755 ~/bin/mvs

以后,就可以直接使用mvs给一批文件改名字了。

mvs *.jpg

本文所举例子虽然简单,但勾画出了一些比较通用的框架,根据需要稍加修改就可以解决很多比较复杂的任务。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航