Created
June 22, 2013 14:50
-
-
Save sunuslee/5841148 to your computer and use it in GitHub Desktop.
Revisions
-
sunuslee created this gist
Jun 22, 2013 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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