Time of Update: 2018-12-05
若變數為空白,可以使用 := 設定一個預設值,文法為:${var:=defaultValue}樣本:在Terminal中輸入下列命令:jubincn@ubuntu:~$ echo ${bank:=ICBC}ICBCjubincn@ubuntu:~$ echo bankICBCjubincn@ubuntu:~$ bank=CCBjubincn@ubuntu:~$ echo bankCCB在下面的樣本中,若未設$1參數,die函數將賦予其一個預設值。die(){ local error=${1
Time of Update: 2018-12-05
控制指令碼,stat.shPID_NUM=$$PID_FILE=stat.pid#echo "pid : "$PID_NUMPROG_NAME=$0ACTION=$1usage() { echo "Usage: ${PROG_NAME} {start|stop|restart}" exit 1;}start(){ sh ./stat_run.sh & PID_NUM=$! echo "worker pid is " $PID_NUM echo
Time of Update: 2018-12-05
Linux shell 截取字元變數的前8位,有方法如下:1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}’3.echo $a|cut -c1-84.echo $5.expr $a : ‘/(.//).*’6.echo $a|dd bs=1 count=8 2>/dev/null 按指定的字串截取1、第一種方法:${varible##*string}
Time of Update: 2018-12-05
下面的內容基於Linux bash環境在unix中運行shell指令碼的方式有很多種,假設有一個可以啟動並執行指令碼叫test.sh,可以通過source加指令檔名,source test.sh(= . ./test.sh 兩個.), 也可以通過./路徑/test.sh方式運行,如果指令碼在PATH路徑下,還可以位元組通過指令碼名運行,如test.sh。它們之間的區別是:source test.sh的方式讓test.sh在當前的shell
Time of Update: 2018-12-05
用source,dot(.)的方式執行shell指令碼的時候,不產生子進程,shell指令碼在當前的shell中運行,shell指令碼運行完成後,在shell指令碼中聲明的變數在當前的shell中是可見的.直接用指令檔名的方式執行shell指令碼的時候,產生子進程,shell指令碼在子進程中運行,shell指令碼運行完成後,在shell指令碼中聲明的變數在當前的shell中是不可見的.驗證過程:在目前的目錄下有一個tt.sh的指令碼內容如下:echo
Time of Update: 2018-12-05
1、PS1:(提示字元的設定)這個比較有意思,可以定製自己的提示符;當我們每次按下 [Enter] 按鍵去執行某個指令後,最後要再次出現提示字元時, 就會主動去讀取這個變數值了。預設的 bash 的 PS1 變數內的特殊符號代表意義:o \d :代表日期,格式為 Weekday Month Date,例如 "Mon Aug 1"o \H :完整的主機名稱。舉例來說,鳥哥的練習機 linux.dmtsai.tw ,那麼這個主機名稱就是 linux.dmtsai.two \h
Time of Update: 2018-12-05
1、case ... in .... esaccase ... in .... esac ,他的文法如下:case $變數名稱 in"第一個變數內容")程式段;;"第二個變數內容")程式段;;*)不包含第一個變數內容與第二個變數內容的其它程式執行段exit 1;;esac要注意的是,這個文法是以 case 為開頭,而以 esac 為結尾,寫個程式:讓使用者能夠輸入 one, two, three , 並且將使用者的變數顯示到螢幕上,如果不是 one, two, three
Time of Update: 2018-12-05
通過Qpopper2.53遠程獲得shell建立時間:2000-05-27文章屬性:原創文章提交:quack (quack_at_xfocus.org)通過Qpopper2.53遠程獲得shellby quack參考:bufferoverflow secrurity advisory #5 by prizm * 簡述 Qpopper是使用相當廣泛的POP3伺服器,允許使用者通過POP3用戶端讀他們的信件。 它通常用於標準的UNIX系統裡的郵件服務。 *
Time of Update: 2018-12-05
在Bash shell中經常會見到一些比較特殊的符號,本人現收集與此,以供查閱:位置參數:詳見ABS(Advanced Bash Shell)中文翻譯版103頁第9章第一節內部變數,當然英文版ABS都一樣啦$0, $1, $2,等等...位置參數,從命令列傳遞給指令碼,或者是傳遞給函數.或者賦職給一個變數.(具體見Example 4-5 和Example 11-15)$0表示當前執行的進程名,script
Time of Update: 2018-12-05
--------------------該指令碼首先分機然後格式化。一個fat分機,一個ext3分區-------------------#! /bin/sh##分區並格式化SD卡指令碼#usage mksdboot.sh --device /dev/sdbVERSION="0.1"execute (){ $* >/dev/null if [ $? -ne 0 ]; then echo echo "ERROR: executing $*"
Time of Update: 2018-12-05
shell可以在不調用第3方命令,表示不同進位資料。這裡總結以下表示方法。shell 指令碼預設數值是由10 進位數處理,除非這個數字某種特殊的標記法或首碼開頭. 才可以表示其它進位類型數值。如:以 0 開頭就是 8 進位.以0x 開頭就是16 進位數.使用 BASE#NUMBER 這種形式可以表示其它進位.BASE值:2-64.使用方法:其它進位轉為10進位八進位轉十進位:[chengmo@centos5 ~]$ ((num=0123)); [chengmo@centos5 ~]$
Time of Update: 2018-12-05
Shell版本sh:Bourne Shell,最初UNIX的shell。csh:C shell。ksh:Korn shell。bash:Bourne Again Shell。 Linux預設shell。tcsh:C shell的擴充。pdksh:ksh不免費,這個免費。echo -n "Date and time is:" -n不換行。echo "your name is: `whoami` "
Time of Update: 2018-12-05
什麼要進行shell編程 在Linux系統中,雖然有各種各樣的圖形化介面工具,但是shell仍然是一個非常靈活的工具。Shell不僅僅是命令的收集,而且是一門非常棒的程式設計語言。您可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性、可維護性和便攜性比效率更重要的任務。 下面,讓我們一起來看看shell是如何工作的:建立一個指令碼 Linux中有好多中不同的shell,但是通常我們使用bash (bourne again shell)
Time of Update: 2018-12-05
本文也即《Learning the bash Shell》3rd Edition的第六章Command-Line Options and Typed varilables之讀書筆記之二,但我們將不限於此。 在之前,我們涉及的變數基本上是字串,也有整數,例如便是參數個數的$#。我們可以使用declare來制定變數的屬性。變數類型定義declare –a name:表示數組array。declare –f name:表示是function的名字。declare –F
Time of Update: 2018-12-05
轉1、 位置參數 由系統提供的參數稱為位置參數。位置參數的值可以用$N得到,N是一個數字,如果為1,即$1.類似C語言中的數組,Linux會把輸入的命令字串分段並給每段進行標號,標號從0開始。第0號為程式名字,從1開始就表示傳遞給程式的參數。如$0表示程式的名字,$1表示傳遞給程式的第一個參數,以此類推。 2、 內部參數 上述過程中的$0是一個內部變數,它是必須的,而$1則可有可無。和$0一樣的內部變數還有以下幾個。 $# ----傳遞給程式的總的參數數目 $?
Time of Update: 2018-12-05
第三章 Shell輸入和輸出3.1.1 echoecho 命令可以顯示文本行或變數,或者把字串輸入到檔案echo [option] string- -e 解析逸出字元- -n 斷行符號不換行,linux系統預設斷行符號換行-轉義符(\c,\f,\t,\n)\c斷行符號不換行\f 禁止\t Tab\n斷行符號換行3.2.1 readread語句可以從鍵盤或檔案的某一行文本中讀入資訊,並將其賦給一個變數read varible1 varible2
Time of Update: 2018-12-05
這個問題關係到 shell介面編程部分,一個比較令人糾結的問題時,不管操作那個部分的檔案夾,都要從shell檔案系統的root節點(Desktop)開始操作,直到找到你要的節點位置。概因樹形結構表達有關。不說了,直接上代碼吧:LPITEMIDLIST pidlItems = NULL, pidlURL = NULL, pidlWorkDir = NULL; ULONG ulParseLen = 0; HRESULT hr; TCHAR pszPath[MAX_PATH*
Time of Update: 2018-12-05
文章目錄 變數賦值和引用if 語 句&& 和 || 操作符case 語句select 語句 ========================================while/for 迴圈引號二進位到十進位的轉換檔案迴圈拷貝
Time of Update: 2018-12-05
由於Linux下使用銳捷很麻煩,安裝myxrgsu之後,每次使用都要輸入賬戶和口令,這個過程太繁瑣。所以我就想找一個辦法實現自動輸入口令等資訊,自動驗證登入。Expect指令碼是一個很不錯的選擇。首先安裝expect:sudo apt-get install expect#!/usr/bin/expectspawn sudo myxrgsu -dexpect "pass: "send "XXX\r"#XXX為你的Linux管理員密碼expect "Please*name:"send "YYY\
Time of Update: 2018-12-05
shell條件測試通常都會用在for、while、until、if等控制流程結構中,用於判斷檔案的相關性質或變數的相互關係。 條件測試用法:test <運算式> 結果:成立返回0,不成立返回非0 查看結果:echo $? 以下是幾類常用的測試運算式:1 檔案狀態測試-b filename : 當filename 存在並且是塊檔案時返回真(返回0)-c filename :當filename 存在並且是字元檔案時返回真-d pathname :