Skip to content

Instantly share code, notes, and snippets.

@sunuslee
Created June 22, 2013 14:50
Show Gist options
  • Select an option

  • Save sunuslee/5841148 to your computer and use it in GitHub Desktop.

Select an option

Save sunuslee/5841148 to your computer and use it in GitHub Desktop.

Revisions

  1. sunuslee created this gist Jun 22, 2013.
    240 changes: 240 additions & 0 deletions hw.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,240 @@
    # Linux Homeworks

    ## Execise 5

    ###求和
    ```
    #!/bin/bash
    read a
    read b
    echo $[$a+$b]
    ```

    ###求三个数中的最小者
    ```
    #!/bin/bash
    a=123
    b=456
    c=789
    printf "%d\n%d\n%d" a b c|sort|head -n 1
    ```

    ###求和(from 1 to 100)
    ```
    #!/bin/bash
    sum=0
    for i in $(seq 1 100); do
    sum=$[sum+$i]
    done
    echo $sum
    ```

    ###菜单
    ```
    select opt in continue finish
    do
    case $opt in
    continue) echo;;
    finish) exit;;
    esac
    done
    ```

    ###Parameters
    我不懂倒三角是什么意思..

    ```
    sunus@ArchRocks:/tmp$ cat a.sh
    #!/bin/bash
    echo "Parameters:" $@
    echo "Parameters Lenght", ${#}
    if [ ${#} -gt 6 ]; then
    echo "Too many Parameters"
    fi
    sunus@ArchRocks:/tmp$ ./a.sh arg1 arg2 arg3 arg4
    Parameters: arg1 arg2 arg3 arg4
    Parameters Lenght, 4
    sunus@ArchRocks:/tmp$ ./a.sh arg1 arg2 arg3 arg4 arg5 arg6 arg7
    Parameters: arg1 arg2 arg3 arg4 arg5 arg6 arg7
    Parameters Lenght, 7
    Too many Parameters
    ```

    ###Fib 10

    ```
    sunus@ArchRocks:/tmp$ cat fib.sh
    #!/bin/bash
    ret=0
    fib()
    {
    if [ $1 -le 2 ]; then
    ret=$[ret+1]
    else
    fib $[$1-1]
    ret=$[ret+$?]
    fib $[$1-2]
    ret=$[ret+$?]
    echo "finish: fib($[$1-1]) + fib($[$1-2])"
    fi
    }
    fib $1
    echo $ret
    sunus@ArchRocks:/tmp$ ./fib.sh 10
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(5) + fib(4)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(6) + fib(5)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(5) + fib(4)
    finish: fib(7) + fib(6)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(5) + fib(4)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(6) + fib(5)
    finish: fib(8) + fib(7)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(5) + fib(4)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(6) + fib(5)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(2) + fib(1)
    finish: fib(4) + fib(3)
    finish: fib(2) + fib(1)
    finish: fib(3) + fib(2)
    finish: fib(5) + fib(4)
    finish: fib(7) + fib(6)
    finish: fib(9) + fib(8)
    55
    ```

    ### print month name

    ```
    [17:14]:cat month.sh
    #!/bin/bash
    dateString="2013-$1-01"
    echo $(date --date $dateString +"%B")
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:14]:./month.sh 11
    November
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:14]:./month.sh 12
    December
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:14]:./month.sh 01
    January
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:14]:./month.sh 13
    date: invalid date '2013-13-01'
    ```

    ##Execise 6

    ### 9*9

    ```
    [17:23]:cat 99.sh
    #!/bin/bash
    for a in `seq 1 9`; do
    for b in `seq 1 9`; do
    if [ $b -le $a ]; then
    echo -en "$[$b * $a]\t"
    fi
    done
    echo -e "\n"
    done
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:23]:./99.sh
    1
    2 4
    3 6 9
    4 8 12 16
    5 10 15 20 25
    6 12 18 24 30 36
    7 14 21 28 35 42 49
    8 16 24 32 40 48 56 64
    9 18 27 36 45 54 63 72 81
    ```

    ### palindrome check

    ```
    [17:50]:cat palindrome.sh
    #!/bin/bash
    check () {
    len=${#1}-1
    for i in `seq 0 $[len/2 - 1]`; do
    if [ "${1:$i:1}" != "${1:$[$len-$i]:1}" ]; then
    echo "NO"
    return
    fi
    done
    echo "YES"
    }
    check $1
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:50]:./palindrome.sh sunus
    YES
    sunus@ArchRocks[/tmp]
    sunus@ArchRocks[17:51]:./palindrome.sh vivian
    NO
    sunus@ArchRocks[/tmp]
    ```
    ### create a directory and backup file.

    1. 进入目录,不存在就创建
    2. 打包/etc目录

    ### move
    alias move=mv