Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bash#telno 為查詢號碼列表檔案#sendsms.log 為簡訊發送結果檔案#1 代表發送成功query_sms(){>submit_telno>delivered_telno>fail_delivered_telnocat telno |while read line do#判斷telno 檔案裡的號碼哪些提交成功---儲存到submit_telnoawk '{if ($1=='$line') print$0}'
Time of Update: 2018-12-08
將bill 檔案夾下的檔案按一定規則(檔案名稱奇偶)拷貝至bill1,bill2 檔案夾下。更新bill1,bill2 處理進度標籤(更新file.max)file3 為bill 目錄下當前最新檔案的標籤,正常情況下每分鐘會更新(格式為:20121016122100)複製代碼 代碼如下:#!/bin/bash#for wanggy 2012/10/16bill1=/infosms/bill1bill2=/infosms/bill2file_max=`cat file3`cd
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bash#********************************##並發後台運行fun ##for wanggy 2012-01-25 ##note: ##fun_num fun函數後台運行次數 ##sql_num 每個函數sql運行次數
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bash#main---network=192.168.1ping_count=3IP=1:>IP_use:>IP_idle:>ping_actionecho "`date "+%Y%m%d %H:%M:%S"`----->指令碼開始執行......"while [ $IP -lt 255 ]dohost=$network.$IPecho "-------->開始檢測$host伺服器通迅是否正常,ping次數$ping_count.
Time of Update: 2018-12-08
複製代碼 代碼如下:#!/bin/bash#2013-01-06 14:00:00 wanggy exp#note:ping monitorset -u#set -xping_fun(){ d_network=192.168.1 echo -n "input the network(default $d_network):" read network : ${network:=$d_network} echo "network:$network"
Time of Update: 2018-12-08
1.shell 指令碼是區分小寫2.Unix特殊字元有: ( ; $ ? & * () [] ` ‘ “ + 使用其時要進行轉義()3.Shell的注釋以#開頭4.函數的定義Function fuction_name(){Command to execute}調用時直接用function_name.5.控制結構1)If...then語句If [ test_command ]ThenCommandsif2)If...then...else語句If [ test_command
Time of Update: 2018-12-08
1.字元截斷:如果是一般路徑的字元截斷可以用basename和dirname這兩個工具:basename可以從一個檔案路徑中截一個檔案名稱例如:複製代碼 代碼如下:$ basename /home/file.tarfile.tardirname可以從一個檔案路徑中截到一個目錄路徑例如:複製代碼 代碼如下:$ dirname /home/file.tar/home不使用外部工具進行字元截斷bash有內建的功能來對變數進行字元截斷,一般使用"##", "#", "%%", "%", "*"
Time of Update: 2018-12-08
利用here文檔 複製代碼 代碼如下:#!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/yhb get v bye EOF 解釋: -i :關閉多檔案傳輸過程中的互動提示,所以不會再有讓使用者輸入使用者名稱和密碼的提示 -n:阻止了初始串連時的自動登入 -v:將ftp命令設定為verbose模式,從而可以在會話時看到其中的命令
Time of Update: 2018-12-08
* -b 當file存在並且是塊檔案時返回真 * -c 當file存在並且是字元檔案時返回真 * -d 當pathname存在並且是一個目錄時返回真 * -e 當pathname指定的檔案或目錄存在時返回真 * -f 當file存在並且是正規檔案時返回真 * -g 當由pathname指定的檔案或目錄存在並且設定了SGID位時返回為真 * -h 當file存在並且是符號連結檔案時返回真,該選項在一些老系統上無效 * -k 當由pathname指定的檔案或目錄存在並且設定了“粘滯”位時返回真 *
Time of Update: 2018-12-08
Shell 從標準輸入或指令碼中讀取的每一行稱為管道(pipeline);它包含了一個或多個命令(command),這些命令被一個或多個管道字元(|)隔開。 事實上還有很多特殊符號可用來分隔單個的命令:分號(;)、管道(|)、&、邏輯AND (&&),還有邏輯OR (||)。對於每一個讀取的管道,Shell都回將命令分割,為管道設定I/O,並且對每一個命令依次執行下面的操作:整個步驟順序如所示,看起來有些複雜。當命令列被處理時,每一個步驟都是在Shell的記憶體裡發生的;
Time of Update: 2018-12-08
二元比較操作符,比較變數或者比較數字.注意數字與字串的區別. 整數比較 -eq 等於,如:if [ "$a" -eq "$b" ] -ne 不等於,如:if [ "$a" -ne "$b" ] -gt 大於,如:if [ "$a" -gt "$b" ] -ge 大於等於,如:if [ "$a" -ge "$b" ] -lt 小於,如:if [ "$a" -lt "$b" ] -le 小於等於,如:if [ "$a" -le "$b" ] < 小於(需要雙括弧),如:(("$a" <
Time of Update: 2018-12-08
文本終端的顏色可以使用“ANSI非常規字元序列”來產生。舉例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令設定背景成為藍色,前景白色,閃爍游標,輸出字元“ME”,然後重新設定螢幕到預設設定,輸出字元 “COOL”。“e”是命令 echo 的一個可選項,它用於啟用特殊字元的解析器。“\033”引導非常規字元序列。“m”意味著設定屬性然後結束非常規字元序列,這個例子裡真正有效字元是 “44;37;5” 和“0”。
Time of Update: 2018-12-08
例如,要求指令碼只能順序訪問某個資源,例如磁碟檔案等,就可以參考下面的實現。複製代碼 代碼如下:#!/bin/bash## file locking using bash.# ver 0.1.6## author : malundao ( malundao@sina.com )# date : 2011-08-31 # ref : http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2005-09/0472.html##
Time of Update: 2018-12-08
Ctrl + a 切換到命令列開始 Ctrl + e 切換到命令列末尾 Ctrl + l 清除螢幕內容 Ctrl + u 清除剪下游標之前的內容 Ctrl + k 剪下清除游標之後的內容 Ctrl + y 複製剪下板裡的內容 Ctrl + h 類似於退格鍵 Ctrl + r 在曆史命令中尋找 (這個非常好用,輸入關鍵字就調出以前的命令了) Ctrl + c 終止命令 Ctrl + d 退出shell Ctrl + z 轉入後台運行.. alt鍵比較少用,因為很多地方與遠程登陸工具是有衝突的..
Time of Update: 2018-12-08
1、基本概念 a、I/O重新導向通常與 FD有關,shell的FD通常為10個,即 0~9; b、常用FD有3個,為0(stdin,標準輸入)、1(stdout,標準輸出)、2(stderr,標準錯誤輸出),預設與keyboard、monitor、monitor有關; c、用 < 來改變讀進的資料通道(stdin),使之從指定的檔案讀進; d、用 > 來改變送出的資料通道(stdout, stderr),使之輸出到指定的檔案; e、0 是 < 的預設值,因此 < 與 0&
Time of Update: 2018-12-08
shell字串比較、判斷是否為數字 二元比較操作符,比較變數或者比較數字.注意數字與字串的區別. 整數比較 -eq 等於,如:if [ "$a" -eq "$b" ] -ne 不等於,如:if [ "$a" -ne "$b" ] -gt 大於,如:if [ "$a" -gt "$b" ] -ge 大於等於,如:if [ "$a" -ge "$b" ] -lt 小於,如:if [ "$a" -lt "$b" ] -le 小於等於,如:if [ "$a" -le "$b" ] <
Time of Update: 2018-12-08
monitordisk.sh如下 複製代碼 代碼如下:#!/bin/bash #Updated:2008-03-03 PM By:leif(liangliwen@163.com) EMAIL=/usr/local/bin/email /bin/df -h >/tmp/df.txt USE=`df -H | grep -o [0-9]*% | grep -o ‘[0-9]\+'` for i in $USE do if (( $i > 95 )) then $EAMIL -s
Time of Update: 2018-12-08
•深入淺出Shell編程: Shell 變數 ◦1 系統變數 ◦2 Shell使用者變數 ■2.1 基礎 ■2.2 提示 ■2.3 shell 中的數組 ◦3 shell 環境變數 先不要管Shell的版本,來看看Shell 變數,在Shell中有三種變數:系統變數,環境變數,使用者變數。其中使用者變數在編程過程中使用最多,系統變數在對參數判斷和命令傳回值判斷會使用,環境變數主要是在程式啟動並執行時候需要設定。 1 系統變數
Time of Update: 2018-12-08
大部分人在寫Shell 過濾進程的時候 都會使用 grep 在 ps aux 的輸出結果中尋找指定的進程,但此時也會把 grep 進程也顯示出來 比如尋找 pptpd 進程,會匹配出來兩條: 複製代碼 代碼如下:[root@selboo ~]# ps aux | grep pptp root 20191 0.0 0.2 5108 704 pts/2 R+ 16:58 0:00 grep pptp root 22054 0.0 0.1 1952 608 ? Ss Oct22 0:00
Time of Update: 2018-12-08
1 利用pgrep 匹配名字 複製代碼 代碼如下:if test $( pgrep -f $1 | wc -l ) -eq 0 then echo "進程不存在" else echo "存在進程" fi 以下是補充內容: 當前系統中的進程: apple@ubuntu:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:57 ? 00:00:02 /sbin/init root 2 0 0 13:57 ? 00:00:00