歡迎您光臨本站 註冊首頁

讓Linux命令加速

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

  Linux中大多數命令只做一件事,因此,通過Shell腳本語言把各種程序粘合起來使用時,就能完成複雜的任務。本文充分利用功能強大,但簡單易學的小工具,給出一些實際問題的解決方案,希望使Linux更實用、更好用。

讓命令「說話」

幾乎每個Linux命令都有很多選項,允許使用者根據需要靈活地定製。但這給初學者帶來諸多不便,一是學起來麻煩,二是容易遺忘,需要時不得不重新再來。

那麼有沒有辦法讓命令自己「說話」呢?通過Shell腳本語言可以給命令加上友好的「面孔」。示例如下:
QUOTE:
::::::::::::::
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的易用性。在實際應用中,讀者可根據需要替換這個小程序的命令。

處理多個文件

在前面的基礎上,如果想給一批文件改名的話,那麼下面這個例子就更有實用價值了。
QUOTE:
::::::::::::::
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文件中添加下面幾行:
QUOTE:
PATH=~/bin:$PATH
export PATH

◆把測試好的程序移至bin目錄,更改成簡單易記的名字,並設置文件屬性:
QUOTE:
cp mvs.sh ~/bin/mvs
chmod 755 ~/bin/mvs

以後,就可以直接使用mvs給一批文件改名字了。
mvs *.jpg

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

[火星人 ] 讓Linux命令加速已經有466次圍觀

http://coctec.com/docs/linux/show-post-130426.html