shell script到底是什么?怎么使用?

???????或許﹐許多人都已經聽過 shell 或 bash 這些名字﹐但不知道您是否知道它們究竟是什麼東東呢﹖
先回到電腦基礎常識上吧﹕所有的電腦都是由硬體和軟體構成的﹐硬體就是大家能摸得著看得見的部份﹐例如﹕鍵盤﹑熒幕﹑cpu﹑記憶體﹑硬碟﹑等等。離開了硬體﹐所謂的電腦是不存在的﹐因為整個系統的輸入和輸出以及運算都離不開硬體。請問﹕如果沒有鍵盤和熒幕您是怎樣使用電腦的﹖但是﹐您透過鍵盤進行的輸入﹐以及從熒幕看到的輸出﹐真正發揮功能的﹐是軟體的功勞。而直接負責和這些硬體進行溝通的軟體﹐就是所謂的核心(kernel)﹐kernel 必須能夠接管鍵盤的輸入﹐然後交由 cpu 進行處理﹐最後將執行結果輸出到熒幕上。當然﹐除了鍵盤和熒幕外﹐所有的硬體都必須獲得 kernel 的支援才能使用。
那麼﹐kernel 又如何知道我們鍵盤輸入的東西是什麼呢﹖那就是我們這里介紹的 shell 所負責的事情了。因為電腦本身所處理的數據﹐都是二進位的機器碼﹐和我們人類習慣使用的語言很不一樣。比方說﹐輸入 pwd 命令﹐我們知道這是 print working directory 的意思(非常簡單的人類語音)﹐但作為 kernel 來說﹐它并不知道 pwd 是什麼﹐kernel 只會看機器碼﹐這時候﹐shell 就會幫我們將 pwd 翻譯為 kernel 能理解的程式碼。所以﹐我們在使用電腦的時候﹐基本上就是和 shell 打交道﹐而不是直接和 kernel 溝通﹐更不是直接控制硬體。

Windwos下利用批處理程序bat開發的備份網站及數據庫的腳本 

@echo?off  set?date=%date:~0,4%-%date:?~5,2%-%date:~8,2%  mysqldump?-uroot?-ppassword?-A?-B?>?D:back"%date%".sql  rar.exe?a?-k?-r?-s?-ml?D:bak"%date%".sql.rar?D:bak"%date%".sql  del?D:bak*.sql  rar.exe?a?-k?-r?-s?-ml?D:bak"%date%"htdocs.rar?D:workPHPnowhtdocs

清除/var/log/message 系統日志文件命令腳本

#?使用root身份運行這個腳本  #?清除日志版本,版本:v1  cd?/var/log  cat?/dev/null?>?messages  echo?"Logs?cleaned?up."

 問題:

  1. 不是root執行權限執行不了

  2. 沒有流程控制判斷是否存在文件

LOG_DIR=/var/log  #?$UID為0的時候,用戶才具有root用戶的權限  ROOT_UID=0    #?使用root用戶來運行  if?[?"$UID"?-ne?"$ROOT_UID"?]  then  ??echo?"Must?be?root?to?run?this?script."????  ??exit?1  fi  cd?$LOG_dir?||?{  ??echo?"Can't?change?to?necesary?directory."?>&2  ??exit?1  }  cat?/dev/null?>?messages  echo?"Logs?cleaned?up."  exit?0  #?推出之前返回0表示成功,返回1表示失敗

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享