你可以利用Linux固有的command shell的靈活性創建腳本語言幫助你在Linux環境中模擬DOS命令具體做法如下
如果你是一位IT支持專家你對於Windows的命令操作非常喜歡在你第一次使用Linux的命令行的時候你可能很快就會發現自己被搞糊塗了長期以來你所熟悉的DOS命令在Linux中不存在了所以你會發現自己面臨著一項可怕的任務重新學習並熟悉一整套新的命令
作為另一個選擇你可以利用Linux command shell固有的靈活性創建腳本幫助你在Linux環境中模擬DOS命令具體做法如下
shell scripting的基礎
Linux的shell scripting 是一種自動完成多種類型任務的方法從夜間備份到簡單的命令行應用幾乎任何程序都可以通過shell script完成你甚至可以在腳本內部完成簡單的條件檢查shell script的基本格式如下
#!/bin/sh
這裡是你的命令
注意文件是以#!/bin/sh開始的這把操作系統指向解釋腳本的程序絕大部分系統有/bing/sh因為這是根用戶使用的標准shell你可以在絕大部分系統中使用/bing/bash
重要的是了解每個shell之間的腳本差別一些殼比如bash比標准shell支持更多的命令對於絕大部分Linux版本sh事實上是bash
從一個腳本運行命令非常簡單就好象在Windows系統中運行DOS比如你可以這樣復制文件
#!/bin/sh
cp file file
mv file file
echo "complete" > completetxt
能夠不需要交互就完成一個命令對於自動運行的任務來說非常有用但是對於用戶來說卻不是那麼有幫助了 shell 還為向一個運行中的腳本輸入數據提供了途徑這就允許腳本從用戶那裡獲得數據輸入然後在程序運行中運用這些數據命令行中的argument指的是$到$如果你曾經在DOS中創建過批處理文件你就可能對於使用類似的%%處理同樣的事情下面是一個使用命令行argument的例子
#!/bin/sh
cp $ $
上面的腳本采用了兩個命令行argument並把其中一個作為拷貝的來源而第二個作為拷貝的目的地在運行上面這個腳本的時候你需要輸入諸如/myscript file file這裡的myscript指的是上面腳本的名稱命令行選項也可以通過這種方法傳遞比如
#!/bin/sh
cp $ $ $
為了遞歸地把$目錄下所有的文件拷貝到$你可以使用上面的腳本/copy sourcedir destdir選項$加上r能夠告訴系統進行遞歸式的文件拷貝
帶條件的Shell scripting
簡單的Shell scripting對於處理直截了當沒有變數的任務非常合適而對於那些需要一定程度決策的工作來說if/then條件假設就成為必須的了Shell scripting支持很多選項從比較符操作到檢索文件的存在基本的if條件判斷選項包括
eq 檢查某兩個值是否相等(例如if [ eq ])
ne 檢查兩個值是否不相等
lt 檢查值是否小於值
le 檢查值是否小於等於值
gt 檢查值是否大於值
ge 檢查值是否大於等於值
f 檢查某一個文件是否存在(例如[f "文件名"])
d 檢查某一個目錄是否存在
幾乎所有主要的程序都可以使用比較操作最經常使用的是f我們用它在使用某一個文件之前先行檢查它的存在
創建簡單腳本模擬Windows命令
現在你了解了基礎你可以創建腳本命令這樣Windows用戶就可以在Linux系統內使用同樣的命令為你常用的DOS命令創建模擬映射是非常簡單的事情例如把Linux cp命令映射為Windows copy命令就是這樣進行的
#!/bin/sh
if [ f "/usr/bin/mcopy" ]
then
mcopy $ $
else
cp $ $
fi
該腳本利用了mcopy(如果它存在)因為該命令接受Windows路徑比如a:\filetxt這個命令在絕大部分主流Linux版本的mtool包中一旦一個腳本被成功創建記得要使用chmod +x YourScriptName命令使它成為可執行文件
有很多方法可以調試你的腳本但是最簡單的辦法是在你的腳本中插入一個簡單的echo語句下面是一個例子
#!/bin/sh
echo "marker "
if [ f "/usr/bin/mcopy" ]
then
echo "marker "
mcopy $ $
else
echo "marker "
cp $ $
fi
echo "marker "
使用簡單的陳述幫助你了解這個腳本並
From:http://tw.wingwit.com/Article/program/czxt/201404/30597.html