Time of Update: 2018-12-05
本文也即《Learning the bash Shell》3rd Edition的第四章Basic Shell Programming之讀書筆記,但我們將不限於此。運行shell指令碼程式 一個包含shell命令的指令碼就是一個shell程式,例如.bash_profile。我們建立shell指令碼,允許的時候可以通過兩種方式:一、source ;二、只敲入檔案名稱,按斷行符號就可以執行,這種方式更為便捷。我們需要將檔案放置在命令搜尋路徑下(在Linux
Time of Update: 2018-12-05
在向大家詳細介紹linux編譯之前,首先讓大家瞭解下Linux指令碼Shell命令。然後講解在shell指令碼中可以使用任意的unix命令。文法基本介紹1.開頭程式必須以下面的行開始(必須方在檔案的第一行):#!/bin/bash符號#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/bash來執行程式。當編輯好指令碼時,如果要執行該指令碼,還必須使其可執行。要使指令碼可執行:編譯 chmod +x filename 這樣才能用./filename 來運行或者使用:
Time of Update: 2018-12-05
/* * ShellSort.cpp * * Created on: 2013-6-1 * Author: jue */#include <iostream>using std::cout;using std::endl;void swap(int &a,int &b){int temp = a;a = b;b = temp;}void shellSort(int datas[],int length){int offset =
Time of Update: 2018-12-05
有時候一個任務啟動並執行時間很長,需要將其放在後台運行,否則推出控制台後任務就會被終止,本文講解一下怎麼讓任務在後台運行。比如一個shell指令碼,longjobs.sh運行要很長時間,並且運行中有資訊列印到控制台。1,如果直接通過
Time of Update: 2018-12-05
1、重新導向1. 標準輸入(stdin) :代碼為 0 ,使用 < 或 << ;(重寫或追加)2. 標準輸出(stdout):代碼為 1 ,使用 > 或 >> ;3. 標準錯誤輸出(stderr):代碼為 2 ,使用 2> 或 2>> ;eg:yee@Loong:~$ ifconfig > 1.txtyee@Loong:~$ vim 1.txt yee@Loong:~$ ls -al 2.txt >>1.txtls:
Time of Update: 2018-12-05
mycommand >mylog.txt 2>&1 應該是最經典的用法了。命令的結果可以通過“%>”的形式來定向輸出,%表示檔案描述符:1為標準輸出stdout、2為標準錯誤stderr。系統預設%值是1,也就是“1>”,而1>可以簡寫為>,也就是預設為>。stdout的預設目標是終端,stderr的預設目標為也是終端。我們在批處理中執行: echo text >result.txt ,我們就可以在螢幕上會看到 echo text
Time of Update: 2018-12-05
/* *此文參考地址:*////注意:本人使用ubuntu11.4,使用sh test 運行shell指令碼報錯,需使用/bin/bash test 運行才能得到正確的結果shell中字串的截取2010-06-24 00:40str="abc123abcABC"#計算字串的長度echo ${#str} #12#位置參數有關操作echo ${#*} #位置參數的個數echo ${#@} #位置參數的個數和上面的效果一樣echo $*
Time of Update: 2018-12-05
[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 字元型裝置檔案:以單個字元為單位 塊裝置檔案:存取是以一個字塊為單位普通檔案的處理是不必要對硬體進行過多操作的,而字元型裝置和塊裝置就不同了,所以是以特別形式檔案出現.[ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FILE
Time of Update: 2018-12-05
shell是使用者與linux系統間介面的程式,它允許使用者向作業系統輸入需要執行的命令,許多強大的功能都能通過shell實現1、重新導向 檔案描述符:0 為一個程式的標準輸入、1為標準輸出、2為標準錯誤輸出 使用 > file.txt 可以將程式標準輸出重新導向到一個檔案,預設情況下會將該檔案的內容覆蓋 >>file.txt 則將程式標準輸出追加到file.txt檔案中
Time of Update: 2018-12-05
1 shell script必須具備可讀與可執行(rx)的許可權。 2 script的執行方式的區別: 1)sh script_name或./script_name:在子進程中執行(一個新的bash環境) 2)source script_name:在父進程中執行 【提示】當子進程完成後,子進程內的各項變數或者操作將會結束而不會傳回到父進程中 3 script的編程習慣
Time of Update: 2018-12-05
本文由larrylgq編寫,轉載請註明出處:http://blog.csdn.net/larrylgq/article/details/7395261作者:呂桂強郵箱:larry.lv.word@gmail.com變數:aaa="lv";不要空格echo $aaa->lvecho ${aaa}txt->lvtxtecho $aaa.txt->lv.txt求值:a=1b=21:let: let c=a+b echo $c 32:$[]: d=$[ a + b ]
Time of Update: 2018-12-05
Windows
Time of Update: 2018-12-05
#!/bin/bashcat 1 | grep " 403 " | while read linedo index=`expr index "$line" GET` let startindex=$index+3 echo "startindex:"$startindex endindex=`expr index "$line" \?` echo "endindex:"$endindex if [ 0 -eq $
Time of Update: 2018-12-05
在shell指令碼中調用另一個指令碼 bash shell的命令分為兩類:外部命令和內部命令。外部命令是通過系統調用或獨立的程式實現的,如sed、awk等等。內部命令是由特殊的檔案格式(.def)所實現,如cd、history、exec等等。fork ( /directory/script.sh)首先,我們所執行的任何程式,都是由父行程(parent process)所產生出來的一個子行程(child process),子行程在結束後,將返回到父行程去。此一現像在 Linux
Time of Update: 2018-12-05
本文也即《Learning the bash Shell》3rd Edition的第七章Input/Output and Command-Line Processing之讀書筆記之四。我們的目的是把書讀薄。我們將審視Linux系統如何解析bash。 第一步驟:將命令分給為token,根據空格,TAB, NEWLINE, ;, (, ), <, >, |, 以及
Time of Update: 2018-12-05
本文也即《Learning the bash Shell》3rd Edition的第五章Flow Control之讀書筆記之四,但我們將不限於此。flow control是任何程式設計語言中很常用的部分,也包括了case。在這裡,我們將繼續學習他們。 select和其他流量控制不一樣,在C這類變成語言中沒有類似的語句(C中的select用於socket,是完全不同的含義,不是流量控制)。格式如下:select name [in list ] do
Time of Update: 2018-12-05
本文也即《Learning the bash Shell》3rd Edition的第四章Basic Shell
Time of Update: 2018-12-05
【轉自】 http://www.ixdba.net/a/os/linux/2010/0422/35.html shell中可能經常能看到:>/dev/null 2>&1 命令的結果可以通過%>的形式來定義輸出分解這個組合:“>/dev/null 2>&1” 為五部分。1:> 代表重新導向到哪裡,例如:echo "123" > /home/123.txt2:/dev/null 代表空裝置檔案3:2>
Time of Update: 2018-12-05
今天登入系統, 敲了N多命令後,習慣性的用向上的方向鍵來找尋曆史命令,突然看到了這個: $^[[A^[[A^[[A 按刪除鍵,出來的是這個: $ ^H^H^H^H^H^H^H 只能用 Ctrl+BackSpace 才能刪除游標左邊的內容...用的那個不習慣啊~~~!!! - -b後來問到 Wells ,原來只需要做一個小小的設定,在Console中啟用: $set -o emasc 原因後來上網查了一下,暫且引用一下《FreeBSD使用大全》中的一段內容:--------------
Time of Update: 2018-12-05
shell指令檔中有時候需要依據命令執行的結果狀態決定整個shell指令檔的執行路徑。一個簡單的需求就是:判斷某個檔案中是否存在某一行內容,存在則不做任何操作,否則插入該行。判斷檔案中是否存在某行,可以使用grep命令:grep $line $file如果$file中存在$line,grep執行返回的結果為0,如果不存在返回1,如果$file檔案本身不存在返回2我們可以通過下面的shell代碼進行簡單的驗證:#/bin/bashgrep "abc" filenamereval=$?echo "