Time of Update: 2018-07-26
平時多少會用shell寫點小工具, 而這些小工具運行後的第一件事就是解析參數, 這裡總結了下shell指令碼幾種處理命令列參數的方法. 比較常見的做法就是解析bash內建的幾個特殊變數, 例如直接遍曆$*或者$@: #/bin/sh echo 'args from \$*' for arg in $*; do echo $arg done echo 'args from \$@'
Time of Update: 2018-07-25
理解輸入和輸出 重新導向錯誤訊息 ls -al badfile 2> test4 重新導向錯誤和資料 ls -al test test2 test3 badtest 2> test6 1> test7 #錯誤輸入到test6,正常資料顯示到test7 ls -al test test2 &> test8 #將標準錯誤和標準輸入都重新導向到test8 在指令碼中重新導向輸出 將文本輸出到標準錯誤中 echo
Time of Update: 2018-07-25
let 命令介紹: Let命令讓BASH shell執行算數運算的操作,使用let,可以比較兩運算數值或者執行加減乘除等運算操作,這種操作往往用於shell程式中的流程式控制制結構或者執行需要的運算,注意let只能執行整數的相關操作,運算結果也只能儲存整數。 使用方法如下: let 變數名 = 變數1 運算子 變數2 常見的算數操作分類: 加法:+ 減法:- 除法:/ 乘法:*
Time of Update: 2018-07-25
if [ -n "$1" ] then echo "111" else echo "222" fi exit 0 執行sh my.sh par 提示syntax error:unexpected end of file.錯誤請問為什麼啊。 文本編輯是在windows下通過記事本編寫的這個檔案,運行 在cygwin類比LINUX軟體環境下。 解決思路:
Time of Update: 2018-07-26
編者按 本文編譯自commandlinefu.com的系列文章Top Ten One-Liners from CommandLineFu Explained。作為一個由使用者推薦最有用shell命令的網站,其記錄了數以萬計的各色shell命令,其中不乏相當實用和有趣的,本文就要細數當中獲投票最高的一些命令,從其中取材並加以細釋,希望讀者能從中受益。 引言
Time of Update: 2018-07-26
shell入門教程(1)-shell基礎 - justkk的專欄 - 部落格頻道 - CSDN.NEThttp://blog.csdn.net/justkk/article/details/43795131 shell入門教程(2)-變數和參數 - justkk的專欄 - 部落格頻道 - CSDN.NEThttp://blog.csdn.net/justkk/article/details/44081993 shell入門教程(3)-命令編輯 - justkk的專欄 - 部落格頻道 -
Time of Update: 2018-07-26
Shell下的迴圈結構是類C的,同樣也有for迴圈、while迴圈,此外,Shell也有until迴圈。 for迴圈 for迴圈的基本文法 for variable in {list}do statement1 statement2 ...done for迴圈的文法意思與C語言一樣,即執行迴圈體的次數由list決定。list在這裡是一個列表,可以是一系列的數字或字串,元素之間用空格隔開 舉例:依次列印出1~10。 1、列出list列表:
Time of Update: 2018-07-26
前面遇到一個問題,就是記錄檔過大,佔據了磁碟空間導致構建項目失敗 於是就想寫個定時任務刪除日誌或者壓縮記錄檔 在網上看了很久都沒找到正確的指令碼方式 於是就自己請教別人,寫了一個,分享給找不到而且需要這樣一個指令碼的新手同學 優點:定時壓縮,節約空間 按需求尋找需要壓縮或者刪除的記錄檔 命名為rm_log.sh shell指令碼如下: #!/bin/bash
Time of Update: 2018-07-26
簡介 sed 是一種線上編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為“模式空間”(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有 改變,除非你使用重新導向儲存輸出。Sed主要用來自動編輯一個或多個檔案;簡化對檔案的反覆操作;編寫轉換程式等。 sed使用參數 [root@www ~]#
Time of Update: 2018-07-26
指定指令碼解譯器 #!/bin/bash 注意: 1、該聲明只能放在指令碼的首行,說明該指令碼使用bash解譯器來解釋執行,否則會被當成注釋 2、bash必須使用絕對路徑 3、該聲明只在指令碼作為可執行程式,通過./test.sh調用是才有效,如果通過sh test.sh 則會直接運行sh解譯器 test.sh只是作為參數傳遞而已 調試指令碼
Time of Update: 2018-07-26
今天遇到一個問題,需要判斷目錄下是否存在.c檔案。我使用了if [ -f *.c ],用-f和萬用字元來判斷是否有.c的檔案存在,然而linux一直報錯“unexpected operator”,因此在-f下,後面是不能使用萬用字元的。 後來,我想了一個土辦法,if [ -n "'ls *.c'"
Time of Update: 2018-07-26
在linux的shell中 if 語句通過關係運算子判斷運算式的真假來決定執行哪個分支。Shell 有三種 if ... else 語句: if ... fi 語句; if ... else ... fi 語句; if ... elif ... else ... fi 語句。 1) if ... else 語句 if ... else 語句的文法: if [ expression ]then Statement(s) to be
Time of Update: 2018-07-26
舉例說:指令碼名稱叫test.sh 入參三個: 1 2 3 如下 ./test.sh 1 2 3 運行test.sh 1 2 3後 $*為"1 2 3"(一起被引號包住)$@為"1" "2" "3"(分別被包住)$#為3(參數數量) 案例2: #!/bin/bash my_fun() { echo "$#" } echo 'the number
Time of Update: 2018-07-26
轉載:http://blog.gesha.net/archives/221/ linux系統時間和硬體時鐘問題(date和hwclock) 總結一下hwclock,這個容易暈: 1)/etc/sysconfig/clock 檔案,只對 hwclock 命令有效,且只在系統啟動和關閉的時候才有用(修改了其中的 UTC=true 到 UTC=false 的前後,執行 hwclock (–utc, 或 –localtime) 都沒有變化,要重啟系統後才生效);
Time of Update: 2018-07-26
sed 和 awk 是Unix環境下強大的文本過濾工具。 通過sed和awk,可以方便的編輯本地的檔案,也可以更方便的使用Regex過濾其他的命令的輸出。 sed 代表 Stream Editor,意味著 sed 是面向流機制的。為sed命令提供的所有輸入在被sed處理後都要送到 STDOUT。 sed 命令並不改變輸入的文字。 常用的sed格式: 一、單個 sed 的執行 sed 讀取每一行資料,然後執行一個動作。 文法為: sed
Time of Update: 2018-07-26
項目發布,寫了個shell指令碼來啟動項目,包括項目的啟動,關閉 重啟 包括項目的日誌輸出到指定的檔案 ,不為別的,就為了下次項目發布的時候,能夠直接把指令碼拷貝過去用就行啦。哈哈。。 把這段shell指令碼複製過去,只要把紅色部分改為你自己項目的東西,就可以直接運行啦 。 然後賦值該指令碼執行許可權就行了:chmod 777 指令碼名 1.啟動 ./blog.sh
Time of Update: 2018-07-26
1、Shell概述 每個人在成功登入linux後,系統會出現不同的提示符號。例如$、~、#等,然後你就可以開始輸入需要的命令,若是命令正確,系統就會依據命令的要求來執行,直到登出系統為止,在登入到登出期間,輸入的每個命令都會經常解譯及執行。而這個負責的機制就是shell。 2、Shell編程
Time of Update: 2018-07-26
轉貼: http://blog.csdn.net/allenlinrui/article/details/7490206 使用crontab你可以在指定的時間執行一個shell指令碼或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都運行 入門 # crontab –e 這樣可以已編輯模式開啟個人的crontab設定檔,然後加入一下這行: 0 0 * * * /home/linrui/XXXXXXXX.sh
Time of Update: 2018-07-26
C編寫的進度條: http://blog.csdn.net/addw1/article/details/55292922 shell編寫 #!/bin/bashfunction bar(){ i=0 bar='' lable=('|' '\\' '-' '/') index=0 while [ $i -le 100 ] do #printf "[%-100s][%d%%][%c]\r"
Time of Update: 2018-07-26
最近做一個團購檔案下載服務的時候,自己偷懶不想寫檔案下載的邏輯,而且Linux的curl 命令非常強大,於是乎想直接通過Java來執行curl命令做下載。 在Java中,你可以通過Runtime.getRuntime().exec 來執行外部的shell命令。 Process proc = Runtime.getRuntime().exec("ping