Time of Update: 2018-12-03
這本書沒有答案,給作者發郵件問了,他就沒有提供答案。所以只好自己做題了第五章5.1 Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7Q Cai-English-1984-Jiangsu-7cat
Time of Update: 2018-12-03
習慣了c/c++的編程環境,再轉到shell編程上,總有那麼一點陌生的感覺。shell中一般的if-then-else函數格式無外乎如下:if 條件1then 命令1elif 條件2then命令2else 命令3fi而linux中若命令退出狀態為0,則退出成功,無錯誤;若退出狀態為1,則退出失敗,某處有錯誤。if-then-else-函數中,條件1為條件測試,若條件1返回為0,表示測試為真,執行命令1;反之,返回1,則執行elif。亦即以條件是否測試成功為if的判斷標準,而不是以傳回值為標準。
Time of Update: 2018-12-03
I/O重新導向詳解及應用執行個體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,
Time of Update: 2018-12-03
問題:要對一個幾G,幾千萬行的檔案進行預先處理。功能:將一個檔案中記錄按一定的規則分割進不同的檔案。優點:用shell指令碼做文本處理真的很方便,寥寥數行,啥都搞定了,如果用其它進階語言寫,指不定得寫多久。缺點:單進程單線程做文本分割,耗時可能會很長。 在本例中,需處理的文本記錄的格式為:fore@forest:~/work/ftr_m2_work/search/periphery/FullIndex/script$ more
Time of Update: 2018-12-03
標準輸入與輸出執行一個Shell命令列時通常會自動開啟3個標準文檔,即標準輸入文檔(stdin),通常對應終端的鍵盤;標準輸出文檔(stdout)和標準錯誤輸出文檔(stderr)都對應終端的螢幕。進程將從標準輸入文檔中得到輸入資料,將正常輸出資料輸出到標準輸出文檔,而將錯誤資訊送到標準錯誤文檔中。 我們以cat命令為例。cat命令的功能是從命令列給出的檔案中讀取資料,並將這些資料直接送到標準輸出。若使用如下命令 # cat
Time of Update: 2018-12-03
Linux下shell的簡單編程 轉自:動態網製作指南 www.knowsky.com shell指令碼編寫基礎 從定時備份到執行簡單命令,Linux的shell指令碼可以執行各種功能。幾乎所有的程式都可以用shell指令碼來運行。在指令碼中甚至可以包含一些簡單的條件選擇。shell指令碼的基本格式如下:#!/bin/sh...Your commands here... 注意檔案以#!/bin/sh開始。這條語句告訴作業系統用來解釋指令碼的程式位置。大多數系統會有/bin/
Time of Update: 2018-12-03
Linux的Shell編程其實作為命令語言互動式地解釋和執行使用者輸入的命令只是Shell功能的一個方面,Shell還可以用來進行程式設計,它提供了定義變數和參數的手段以及豐富的程式控制結構。使用Shell編程類似於DOS中的批次檔,稱為Shell script,又叫Shell程式或Shell命令檔案。 Shell基本文法 像進階程式設計語言一樣,Shell也提供說明和使用變數的功能。對Shell來講,所有變數的取值都是一個字串,Shell程式採用$var的形式來引用名為var的變數的值。
Time of Update: 2018-12-03
一、本地變數的使用本地變數就如同局部變數一樣,只在本SHELL中起作用。它不會影響到其他SHELL中的變數。1。顯示變數值可以使用echo命令。需要注意的是,使用變數的時候必須在變數名前加上$符號2。清除變數使用unset命令可以清除命令。3。顯示所有本地SHELL變數SHELL中預定義了一些環境變數。要想顯示這些命令,可以使用set命令。 另外,使用者自己已經定義過的本地變數也會在其中顯示。4。測試變數是否已經賦值${variable:-value}如果變數已經賦值,則使用該變數值。如果變數為
Time of Update: 2018-12-03
如果不使用內建命令而是fork出一個子進程並且在子進程中執行的話,不會改變父環境的路徑。因為執行結束了又回到了父shell環境,環境的pwd根本沒有被改變,所以就會失敗。可以自己寫一個指令碼測試下:cd.sh#!/bin/bashcd /home/然後執行./cd.sh 你會發現當前shell的路徑根本沒有變化。同樣的道理,想改變當前shell的很多參數和環境變數表內容都要使用內建命令。
Time of Update: 2018-12-03
原貼:http://topic.csdn.net/u/20071101/11/4bf1047d-dc46-4b39-9766-4f05b0eeaca7.htmlSHELL syntax error:unexpected end of file 提示錯誤 [已結貼,結貼人:myepoch] 加為好友發送私信線上聊天 myepochmyepoch等級:可用分等級:富農總技術專家分:131總技術專家分排名:76086揭帖率:26.51%發表於:2007-11-01 11
Time of Update: 2018-12-03
sortsort 命令對 File 參數指定的檔案中的行排序,並將結果寫到標準輸出。如果 File 參數指定多個檔案,那麼 sort 命令將這些檔案串連起來,併當作一個檔案進行排序。sort文法[root@www ~]# sort [-fbMnrtuk] [file or stdin]選項與參數:-f :忽略大小寫差異,例如 A 與 a 視為編碼相同;-b :忽略最前面的空格符部分;-M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法;-n
Time of Update: 2018-12-03
uniq uniq命令可以去除排序過的檔案中的重複行,因此uniq經常和sort合用。也就是說,為了使uniq起作用,所有的重複行必須是相鄰的。uniq文法[root@www ~]# uniq [-icu]選項與參數:-i :忽略大小寫字元的不同;-c :進行計數-u :只顯示唯一的行 testfile的內容如下cat testfilehelloworldfriendhelloworldhello 直接刪除未經排序的檔案,將會發現沒有任何行被刪除#uniq testfile
Time of Update: 2018-12-03
做個shell解析ini檔案,用作搭建HA架構中的解析ini設定檔測試的ini檔案是系統裡面搜到的一個# Example driver definitions# Driver from the postgresql-odbc package# Setup from the unixODBC package[PostgreSQL]Description= ODBC for PostgreSQLDriver= /usr/lib/psqlodbc.soSetup=
Time of Update: 2018-12-03
發現GNOME Shell 3.4很炫,比土裡土氣的Gnome-Classic好用多了。安裝方法:sudo apt-get install gnome-shell登出後選擇Gnome就可以應用了,不是"gnome-classic"哦。安裝流行的Faenza Icon theme:以下摘自網路首先需要安裝一個工具,來方便的管理,安裝主題以及案頭設定.sudo apt-get installgnome-tweak-tool目前最流行的表徵圖主題是Faenza Icon Theme.sudo add-
Time of Update: 2018-12-03
1. Shell中的變數類型Shell中的變數可以分為環境變數、位置變數、預定義的特殊變數以及使用者自訂變數、Shell中的環境變數是一類Shell預定義變數,是用於設定系統運行環境的變數,環境變數由系統統一命名。部分系統變數的值由系統設定,部分環境變數的值可以由使用者給定。環境變數的名稱由大寫字母組成,常用的Shell環境變數如下所示:HOME: 使用者主目錄的全路徑名,cd $HOME 即可切換到使用者的主目錄PATH:
Time of Update: 2018-12-03
主要是shell常用的幾個操作:1 shell和awk結合 2 shell的字串操作 3 shell對檔案的操作和awk的結合 4 檔案MD5校正 5 結果的輸出 6 傳參等 下面的內容不保證完全正確,不是原文拷貝。 $sh test.sh tableName 20090310 調用shell使用上面的語句 其中tableName 和20090310是2個參數 其中也假設有一個記錄檔*.log,一般awk的使用對日誌進行分析的也比較多 假設log.log有以下的文字:
Time of Update: 2018-12-03
前言數組中判斷元素是否存在的時間複雜度一般為O(n),是因為大家一般的做法都是遍曆一遍數組看看所要找的資料是否存在。這裡介紹一種利用key的唯一性來實現的時間複雜度為O(1)的判斷元素是否存在的方法在c語言裡這種方法經常使用,這裡介紹在shell的文法中我們如何利用關聯陣列和key值唯一性來提高指令碼的執行效率需求&&解決方案構建關鍵字數組和尋找數組#構建關鍵字數組for num in `seq 1
Time of Update: 2018-12-03
前言shell寫指令碼通常可以模組化,也可以功能化,例如test1.sh完成一個獨立功能,test2.sh也完成一個獨立的功能,但是需要test1.sh作為前提,因此為了節省執行時間,不是用crontab傻瓜似的等待,我們可以在test1.sh裡調用test2.sh執行,效率會更高,這裡僅僅介紹兩種在一個指令碼裡調用另外一個指令碼的方法指令碼間調用首先,簡單的寫兩個測試指令碼test1.sh :#!/bin/bashecho "the first scripts"test2.sh
Time of Update: 2018-12-03
前言好久沒寫shell指令碼了,今天看到群裡有這麼一個需求,如下:我也是複習一下shell指令碼,就順手寫了個程式測試了一下,基本上通過了思路首先,用shell指令碼按行讀取文本,將每一行存入一個數組中每次選擇一個隨機數,來從數組中取資料注意,不能是重複的行,所以隨機數有標記欄位Shell指令碼#!/bin/bash#檔案位置file="./test.txt"#計數器i=0#按行讀取檔案內容,存入arr數組中for line in $(awk '{print $0}' $file)doarr[$
Time of Update: 2018-12-03
前言目前我掌握的基礎語言,php(最為熟悉,項目裡代碼都是用其實現),bash shell(營運利器),c(acm專用),這裡面能實現多線程的貌似只有c,但是我c只是用來學習和實現演算法和資料結構,因此工作中我想要類比多進程並行作業,就只能依靠bash