1.創建和運行 shell 腳本
shell 腳本提供了一種用來執行冗長的命令、大型或復雜的命令序列以及例程任務的簡單方法。shell 腳本是包含一個或多個命令的文件。輸入 shell 腳本文件的名字后,系統會執行文件中所包含的命令序列。
可以使用文本編輯器來創建一個 shell 腳本。腳本文件既可以包含操作系統的命令,也可以包含 shell 的內置命令。
以下的步驟是用來編寫 shell 腳本文件的常規方針:
(1)使用文本編輯器,創建并且保存一個文件。可以在 shell 腳本文件中包含 shell 命令和操作系統命令的任意組合。根據約定,設置為不為許多用戶來使用的 shell 腳本文件將存放在 $HOME/bin 目錄中。
注:操作系統并不支持在 shell 腳本文件內的 setuid 或者 setgid 子例程。
(2)要只允許所有者運行(或者執行)文件,使用 chmod 命令。例如,如果文件名為 s cript1,請輸入:
chmod u=rwx s cript1
之后按下 Enter(回車)鍵。
(3)在命令行上輸入腳本文件名,運行 shell 腳本文件。如果要運行 s cript1 shell 腳本文件,請輸入:
s cript1
之后按下 Enter(回車)鍵。
注:如果是在命令行上,shell 命令(ksh、bsh 或者 csh)在 shell 腳本文件名之前,則可以運行指定的 shell 腳本文件而不需要使它的權限為可執行。
例如,要在 korn shell 控制下運行名為 s cript1 的非可執行腳本文件,可以輸入:
ksh s cript1
2.在 Korn shell或者 Posix shell 上運行多后臺進程
Korn shell 或著 POSIX shell 允許運行一個或者多個命令作為后臺的進程。這些在 shell 腳本文件內運行的命令被稱為協進程。
通過在命令后面放置 |& 運算符可以指定一個協進程。命令的標準輸入和輸出均被管道傳輸到腳本文件。
協進程必須滿足以下設定的約束:? 每條消息的尾部必須包含一個換行符
? 將所有輸出消息發送到標準輸出
? 每條消息后面清空標準輸出
下面的例子顯示了輸入如何被傳輸給協進程并且由協進程返回。
echo "Initial process"
./FileB.sh |&
read -p a b c d
echo "Read from coprocess: $a $b $c $d"
print -p "Passed to the coprocess"
read -p a b c d
echo "Passed back from coprocess: $a $b $c $d"
FileB.sh
echo "The coprocess is running"
read a b c d
echo $a $b $c $d
結果標準輸出如下面所示:
Initial process
Read from coprocess: The coprocess is running
Passed back from coprocess: Passed to the coprocess
如果要寫到協進程,請使用 print -p 命令。如果要從協進程讀出,請使用 read -p 命令。
3.為腳本文件指定 Shell
可以在 shell 腳本文件中包含 shell,從而在指定的 shell 里運行 shell 腳本文件。
如果要在指定的 shell 下運行可執行的 shell 腳本文件,在 shell 腳本文件的第一行中輸入 #!Path,然后按下 Enter(回車)鍵。
#! 字符表明文件類型。Path 變量指定運行 shell 腳本文件的 shell 的路徑名。
例如,要在 Bourne shell 下運行 bsh 腳本文件,請輸入:
#!/usr/bin/bsh
按下 Enter(回車)鍵。
杭州財務數據庫恢復成功 客戶名稱:杭州四海國際旅行社 前臺軟件名稱:金棕櫚小財神財...
在數據恢復行業,提到的非常多的一個詞是開盤數據恢復,這一次的數據恢復大課堂,我們來...
一、Linux介紹 1.使用RAID0盤 (1)啟動新建立的RAID盤: #/sbin/mdadd -ar (2)查看...
裝系統時 誤操作導致數據丟失 數據恢復 重裝系統結束后,就發現硬盤里的數據全沒有了...
卷影拷貝服務(VolumeShadowCopyService,VSS)是Microsoft在WindowsServer2003中開始引...
存儲卡不小心的誤刪或者別的原因,在手機和電腦中的回收站是無法找到我們刪除的數據,這時...
DiskGenius是一款集磁盤分區管理與數據恢復功能于一身的工具軟件。它即是一款功能強大、...