歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 讓Linux命令加速

讓Linux命令加速

日期:2017/3/3 16:45:25   编辑:關於Linux

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

本文所舉例子雖然簡單,但勾畫出了一些比較通用的框架,根據需要稍加修改就可以解決很多比較復雜的任務。

Copyright © Linux教程網 All Rights Reserved