Linux的那些事兒(13)—-Shell編程

來源:互聯網
上載者:User

寫文章之前我想大家必須知道什麼是shell編程以及shell編程和C/C++編程的區別是什嗎?

本人的認識是shell編程就是運用linux的操作命令按照一定的文法進行編程

與C/C++的區別在於,shell編程具有一定的平台相關性,也就是說某些命令在這個Linux作業系統可以用,但是在另外一個linux下就不一定可以用了,而C/C++編程卻可以達到平台無關性。

如果你不介意已耗用時間,大可以採用shell編程,因為簡單。如果考慮到平台無關性,則要考慮通用的shell命令或者C/C++編程。

1、Shell指令碼介紹

1.1 使用shell指令碼的原因

shell指令碼在處理自動迴圈或大的任務方面可節省大量的時間,且功能強大。如果你有處理一個任務的命令清單,不得不一個一個敲進去,然後觀察輸出結果,再決定它是否正確,如果正確,再繼續下一個任務,否則再回到清單一步步觀察。一個任務可能是將檔案分類、向檔案插入文本、遷移檔案、從檔案中刪除行、清除系統到期檔案、以及系統一般的管理維護工作等等。建立一個指令碼,在使用一系列系統命令的同時,可以使用變數、條件、算術和迴圈快速建立指令碼以完成相應工作。這比在命令列下一個個敲入要節省大量的工作時間。shell指令碼可以在行命令中接收資訊,並使用它作為另一個命令的輸入。對於不同的UNIX和LINUX,使用一段shell指令碼將需要一些小小的改動才能運行通過。實際上shell的可遷移性不成問題,但是系統間命令的可遷移性存在差別。

1.2 指令碼內容

指令碼不是複雜的程式,它是按行解釋的。程式必須以下面的行開始(必須放在檔案的第一行):
#!/bin/sh
符號#!用來告訴系統它後面的參數是用來執行該檔案的程式。

任何指令碼都可能有注釋,加註釋需要此行的第一個字元為#,解譯器對此行不予解釋。在第二行注釋中寫入指令碼名是一個好習慣。指令碼從上到下執行,運行指令碼前需要增加其執行許可權。確保正確建立指令碼路徑,這樣只用檔案名稱就可以運行它了。

1.3 運行一段指令碼

$ vim cleanup

#!/bin/sh

#name:cleanup

# this is a general cleanup script

echo "starting cleanup...wait"

rm /usr/local/apps/log/*.log

tail -40 /var/adm/messages>/tmp/messages

rm /var.adm/messages

mv /tmp/messages  /var/adm/messages

echo "finished cleanup"

上述指令碼通過將目錄下檔案名稱截斷,清除/usr/adm/下資訊,並刪除/usr/local/apps/log下所有註冊資訊。

可以使用c h m o d命令增加指令碼執行許可權。

$chmod u+x cleanup

現在運行指令碼,只要敲入檔案名稱即可:$ cleanup

sh:cleanup:command not found

在試:$ ./cleanup

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.