Time of Update: 2018-07-26
程式集包含模組,而模組包含類型,類型又包含成員。反射則提供了封裝程式集、模組和類型的對象。您可以使用反射動態地建立類型的執行個體,將類型綁定到現有對象,或從現有對象中擷取類型。然後,可以調用類型的方法或訪問其欄位和屬性。 反射的用途很大,在上節文章中的“晚期綁定”就是利用了反射的性質,在外掛程式的編寫上更是需要反射。我們常用的反編譯工具Refiector 也是用了反射的性質。 &
Time of Update: 2018-07-26
運算子!/bin/bash#基本運算子val=`expr 2 + 2`echo "兩數之和為${val}"#算數運算子#*需要反斜線a=10b=20val=`expr ${a} + ${b}`echo "a + b = ${val}"val=`expr $a - $b`echo "a - b : $val"val=`expr $a \* $b`echo "a * b : $val"val=`expr $b / $a`
Time of Update: 2018-07-26
前言 今天工作中遇到了一個問題,如果將目錄A中的檔案拷貝到目錄B中(前提目錄B沒有該檔案),並保持檔案在目錄A的結構。項目重點如下: 需要在目錄B中保持檔案在目錄A中的結構。假設A目錄檔案 A/test/1.txt,轉移到目錄B中應該是B/test/1.txt。同時還需要考慮目錄B中是否存在test目錄,多級目錄就要考慮遞迴了。(還好,bash shell裡寫個目錄遞迴遍曆還是比較簡單的。)
Time of Update: 2018-07-26
位置參數可以用shift命令左移。比如shift 3表示原來的$4現在變成$1,原來的$5現在變成$2等等,原來的$1、$2、$3丟棄,$0不移動。不帶參數的shift命令相當於shift 1。 非常有用的 Unix 命令:shift。我們知道,對於位置變數或命令列參數,其個數必須是確定的,或者當 Shell 程式不知道其個數時,可以把所有參數一起賦值給變數$*。若使用者要求 Shell 在不知道位置變數個數的情況下,還能逐個的把參數一一處理,也就是在 $1 後為 $2,在 $2
Time of Update: 2018-07-26
建立文本菜單建立菜單布局 root@wl-MS-7673:/home/wl/案頭/shell# cat -n test1.sh 1 #!/bin/bash 2 echo -e "\t\tMenu" 3 echo -e "1.\tDisplay disk space" 4 echo -e "2.\tDisplay logged on user" 5
Time of Update: 2018-07-26
最近找工作,做筆試題考到排序演算法,重溫一下希爾排序,第一遍在看的時候竟然沒理解。。。 ⊙﹏⊙b汗 所以把自己在看第一遍代碼時候遇到的問題加以整理,以防再忘,一定不能再忘了。。 希爾排序(縮小增量法) 屬於插入類排序,是將整個無序列分割成若干小的子序列分別進行插入排序。希爾排序並不穩定,O(1)的額外空間,時間複雜度為O(N*(logN)^2)。最壞的情況下的執行效率和在平均情況下的執行效率相比相差不多。
Time of Update: 2018-07-26
最近在調試一個基於Matlab的程式,在偶然間發現了幾個比較有趣的技巧,給大家分享一下(很可能是太菜鳥了,沒有涉及這方面,大方之家請勿見笑,對您有所協助請點贊。) 1. Matlab語言是一種解釋型語言(interpreter) 就像我在總結軟體架構資料流時的一種:Interpreter / virtual machine (解譯器/虛擬機器),具體架構可以參看以下博文:http://blog.csdn.net/lg1259156776/article/details/46802107(
Time of Update: 2018-07-26
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。 http://4554480.blog.51cto.com/4544480/837006 假設shell指令檔為hello.sh 放在/root目錄下。下面介紹幾種在終端執行shell指令碼的方法: [root@localhost home]# cd /root/ [root@localhost ~]#vim hello.sh #! /bin/
Time of Update: 2018-07-26
1、編輯detailAppBackup.sh 輸入: #!/bin/sh#Copyright(c) 2010-2011 luoch (luocheng.cn@luocheng.cn) #Backup the detail files and update, clear logs#Version 0.1.1echo "=== Start deleting logs ==="rm -vf `find /opt/apache/htdocs/detail/app/log
Time of Update: 2018-07-26
下面的命令可以查看進程在哪個CPU上運行。 Vostro-270s:$ ps -eLo ruser,pid,ppid,psr root 3 2 0 root 5 2 0 root 8 2
Time of Update: 2018-07-26
在剛剛學習寫shell 批處理時候,進行邏輯運算中,少不了需要進行基礎的:四則運算,這裡說說在linux shell 裡面簡單的實現方法。 1.簡單方法 [chengmo@centos5 ~]$ b=$((5*5+5-3/2)) [chengmo@centos5 ~]$ echo $b29 在linux shell中,我們可以使用 $(()) 將運算式放在括弧中,即可達到運算的功能。 2.其它方法:
Time of Update: 2018-07-26
在Linux shell命令中expr雖然不是很起眼,但是它的作用是非常大的。到目前為止,我個人看來最大的作用就是兩個——四則運算和字串的操作。 先說四則運算,在Shell中四則運算不能簡簡單單的加減乘除,應該要寫如下的格式: $val1=`$val2 - 1`
Time of Update: 2018-07-26
實驗三 shell程式設計: shell基礎 實驗目的: 進一步鞏固shell程式設計語言基本文法,加深對所學知識的理解。 實驗要求 1. 四種變數的使用 2. 配置環境變數 3. 元字元和Regex 4. 引號 1. 本地變數 $ var1="hello Linux" //定義本地變數var1 $ read var2
Time of Update: 2018-07-26
如果使用Windows編輯的 shell指令碼中行尾有可能存在“^M”符號 因為MS-DOS及Windows是斷行符號+換行來表示換行,因此在Linux下用Vim查看在Windows下用VC寫的代碼,行尾後的“^M”符號,表示的是符。 在Vim中解決這個問題,很簡單,在Vim中利用替換功能就可以將“^M”都幹掉,鍵入如下替換命令列: 1)vi -b setup.sh 2)在命令編輯行<就是: 按ESC鍵 然後shift+:冒號>輸入:%s/^M//g 注意:
Time of Update: 2018-07-26
cat pushFileToRemoteService.sh #!/bin/sh BASEDIR="`dirname $0`" ARG_CNT=$# if [ $ARG_CNT -lt 3 ]; then echo "please use: $0 dst_ip sshUser
Time of Update: 2018-07-26
*反引號‘’和$()* 我們先來示範下使用反引號和$()的輸出結果對比 之所以得出此結果,是因為$()中的\對$做了轉義 得出此結果,是因為反引號中的兩個\=\,所以保留了本身意思 在`中,\\=\,此時剩下兩個\,所以一個相當於轉義,所以輸出了1個\  指向aaa.vicp.cc, 然後,在伺服器或本地電腦上安裝花生殼。
Time of Update: 2018-07-26
問題描述 前幾天,一位朋友需要即時監控Linux系統下的某一進程,當該程式運行時則繼續監控,當該程式結束時需要向終端輸出一句話,並做後續操作。 問題分析 要監控某一進程,最新先到的就是ps
Time of Update: 2018-07-26
今天將公司伺服器上的指令碼拿到自己筆記本上運行時出錯,set -x追蹤發現是在一個變數的自增運算時發生錯誤,出錯部分的指令碼大概是這樣: #! /bin/sh param=0 echo $((param++)) 錯誤資訊: $ ./test.sh ./test.sh: 3: ./test.sh: arithmetic expression: expecting primary: "param++"