腳本d
㈠ shell腳本 -d 是目錄文件,那麼-e,-f分別是什麼還有"! -e"這又是什麼意思呢
-e表示如果filename存在,則為真。
-f表示如果filename為常規文件,則為真。
!-e表示取非,如果filename存在,則為假。
(1)腳本d擴展閱讀:
shell和shell腳本的區別:
確切一點說,Shell就是一個命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋並傳給系統。它為用戶提供了一個向Linux發送請求以便運行程序的介面系統級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。
Shell本身是一個用C語言編寫的程序,它是用戶使用Linux的橋梁。Shell既是一種命令語言,又是一種程序設計語言(就是你所說的shell腳本)。
作為命令語言,它互動式地解釋和執行用戶輸入的命令;作為程序設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括循環和分支。
它雖然不是 Linux系統內核的一部分,但它調用了系統內核的大部分功能來執行程序、創建文檔並以並行的方式協調各個程序的運行。
㈡ 請教init.d的腳本寫法的問題,謝謝
在etc/init.d/中新建(復制其它文件後清空其內容)ser2net,在ser2net加入如下內容(ser2net這個是我自己的啟動文件,可改)#!bin/sh/etc/rc.common #/init.d/my-plugin START=80 start(){ ser2net #要運行的程序} 2、更改ser2net屬性,使其為可執行文件chmod777 /etc/init.d/ser2net 或在winSCP中直接修改文件屬性!!!我就是在這走了不少彎路!!! 3、在rc.d目錄下做一個鏈接,啟動時系統會按順序啟動rc.d目錄下的腳本鏈接,對應執行init.d目錄下的啟動腳本。鏈接命令如下:ln -s../init.d/ser2net /etc/rc.d/S80ser2net
㈢ update-rc.d添加腳本為開機啟動
兩種開機執行腳本的方法及相關的一個命令。
修改/啟粗etc/rc.local
在/etc/rc.local的exit 0語句之間添加啟動腳本。腳本必須具有可執行許可權。
用update-rc.d命令添加開機執行腳本
創建要開機自動執行的腳本:/home/test/blog/startBlog.sh,並給予可執行許可權:chmod +x /home/test/blog/startBlog.sh。
在/etc/init.d目錄下創建鏈接文件到前面的腳本: ln -s /home/test/blog/startBlog.sh /etc/init.d/startBlog。
進入/etc/init.d目錄,用 update-rc.d 命令將連接文件 startBlog 添加到啟動腳本中去:update-rc.d startBlog defaults 99。
其中的99表示啟動順序,取值范圍是0-99。序號越大的越晚執行。
移除啟動的腳本:update-rc.d -f startBlog remove。
-f選項表示強制執行。
update-rc.d命令
此命令用於安裝或移除System-V風格的初始化腳本連接。腳本是存放在 /etc/init.d/目錄下的,當然可以在此目錄創建連接文件連接到存放在其他地方的腳本文件。
此命令可以指定腳本的執行序號,序號的取值范圍是 0-99,序號越大,越遲執行。
用法
update-rc.d [-n] [-f] name remove 用於移除腳本。
update-rc.d [-n] name default [NN | SS KK],NN表示執行序號(0-99),SS表示啟動時的執行序號,KK表示關機時的執行序號,SS、KK主要用於在腳本直接的執行順序上有依賴關系的情況下。
選項
-n:悄辯鎮不做任何事情,只顯示將要做的。(預覽、做測試)
-f:強制移除符號連接灶迅,即使 /etc/init.d/script-name 仍然存在。
舉例
update-rc.d startBlog defaults 99:添加一個啟動連接,執行序號是99。
如果執行腳本B需要先執行腳本A,如下設置(A的啟動順序比B的小,結束順序比B的大):
update-rc.d script_for_A defaults 80 20
update-rc.d script_for_B defaults 90 10
添加一個不被其他任何服務需要的服務:update-rc.d script_name defaults 98 02,
添加一個需要 開始/結束 序號在20的服務的服務:update-rc.d script_depends_on_service_20 default 21 19。
移除一個腳本,假定/etc/init.d/目錄下的腳本文件已先被刪除:update-rc.d script_name remove。
移除一個腳本,不管/etc/init.d/目錄下的腳本文件是否已刪除:update-rc.d -f script_name remove。