LinuxTips 從命令列到指令碼

2022-01-23 03:51:43 字數 914 閱讀 2062

對於linux的中的一些問題,一般地我們可以通過以下的思路來解決:

1)使用linux提供的很多的小工具和管道來處理;

2)如果需要使用多條命令,或需要邏輯判斷,考慮使用sh,sh除了能直接使用linux的小工具外,還可以進行很多的邏輯和流程控制;

3)如果需要很多的字串處理,問題也比較複雜,考慮使用perl,在perl中可以方便地呼叫linux的小工具,但是又不缺強大的字串處理能力;

4)最後如果可以稱的上是乙個小的專案的問題,使用python,python與高階語言更加相似,更易於閱讀和維護;

例如對於問題:修改乙個目錄和子目錄下的所有的*.log為*.log

1) 使用linux的小命令

查詢到所有的*.log檔案:find . -iname '*.log' -type f -print

替換得到新的檔名:echo $filename | sed s/\.log$/\.log/i

修改檔案的名字:mv $oldname $newname

2) 轉化為sh指令碼(csh)

#!/bin/csh -x

cd $1

set files = `find . -iname '*.log' -type f -print`

foreach f ($files)

if ( $f !~ "*.log") then

set newf = `echo $f | sed s/\.log\$/\.log/i`

mv $f $newf

endif

end3) 牛逼作法

使用使用一條命令加sh的while來實現:

find . -iname '*.log' -type f -print | while read fname; do echo mv $fname $; done | bash -x

完!

PHP從命令列接收引數

昨天,在牛客網做華為機試題,不太熟悉它的環境,吃了大虧。測試樣例是通過標準輸入輸入的,執行結果是通過標準輸出輸出的。標準輸入就是鍵盤,標準輸出就是顯示器。經過大量實踐,發現fscanf 最好用,沒有之一!mixed fscanf resource handle,string format mixed...

C語言從命令列接收引數

設包含如下程式的檔名為myprog.c編譯後輸入命令 myprog how are you則執行結果是 include int main int argc,char argv argc是命令列總的引數個數,如 c users kang desktop main.exe myprog how are ...

用Git Bash從命令列啟動Sublime

找到sublime所在的目錄。一般 是c program files sublime text 2 sublime text.exe。要測試這個 在git bash中 執行dir c program files sublime text 2 或者是dir c program files sublim...