当前位置:主页   - 电脑 - 操作系统 - 其它系统
让Linux命令加速
来源:网络   作者:来源:网络/责编:编程入门 佚名    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

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

让命令“说话”

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

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

::::::::::::::
cname.sh
::::::::::::::
echo "Please input file name:"
read old
echo "Please input new name: "
read new
mv $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!"
  fi
done

通过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

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

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明