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.
homework

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment