1. Calculate with command-line tool bc

    Basic usage

    $ echo 'expr' | bc
    

    Hex to Dec

    $ echo 'ibase=16;obase=A;FF' | bc
    255
    
    Tagged as : Cli
  2. Python: list assigning(copying)

    >>> a = [1,2,3,4,5]
    >>> b = a
    >>> b[0] = 10
    >>> print a
    [10,2,3,4,5]
    

    在python中,list的assign有點類似c的pointer,改變b的值同時也會改變a的值,要作到 真正的copy有兩種方法:

    slicing

    >>> b = a[:]
    

    這個作法雖然簡單,但是在nested的結構中會有問題,可以改採用第二種方法

    module copy

    >>> import copy
    >>> b = copy.copy(a)
    

    module copy中又有copy與deepcopy,兩者的差別要再研究研究

    Reference:
    python module copy

    Tagged as : Python
  3. bash wrapping 位置錯誤

    在bash環境下,紀錄terminal寬度的變數叫做COLUMNS,可以用

    $ echo $COLUMNS
    

    來查看目前terminal的寬度(字元數)

    bash藉由這個變數來決定哪個位置該wrap,改變terminal大小時,通常這個值也會跟著改 變,但有時候就會有靈異現象,造成terminal大小改變,但COLUMNS的值卻沒有改變

    bash的一個built-in command shopt,或許可以解決這個問題,shopt中有一個選項 checkwinsize,會在每次做完一個指令後檢查terminal的大小,並視情況更新LINES & COLUMNS,可以把他加在 ~/.bashrc 裡面

    $ shopt -s checkwinsize
    

    至於效果如何,需要再觀察看看囉

    Reference:
    Bash Reference Manual

    Tagged as : Bash

Page 3 / 3