一、寫一個腳本:若是某路徑不存在,則將其建立爲目錄;不然顯示其存在,並顯示內容類型;bash
#!/bin/bash path="/tmp/a/b/fang" if [ -e $path ]; then echo "$path exists!" file $path else mkdir -p $path fi
二、寫一個腳本,完成以下功能;判斷給定的兩個數值,孰大孰小;給定數值的方法:腳本參數,命令交互;ide
#!/bin/bash read -p "Please input two number: " -t10 num1 num2 if [ -z "$num1" ]&&[ -z "$num2" ]; then echo "Please give two numbers." exit 1 fi if [ $num1 -ge $num2 ]; then echo "MAX:$num1 MIN:$num2" else echo "MAX:$num2 MIN:$num1" fi
三、求100之內全部奇數之和函數
方法1:ui
#!/bin/bash declare -i sum=0 for i in $(seq 0 2 100); do sum=$(($sum+$i)) done echo "Even sum: $sum."
方法2:spa
#!/bin/bash declare -i sum=0 for i in {1..100}; do if [ $[$i%2] -eq 0 ]; then sum=$[$sum+$i] fi done echo "Even sum: $sum."
方法3:字符串
#!/bin/bash declare -i sum=0 add(){ for i in $(seq 0 2 100); do sum=$[$sum+i] done } add echo "The sum is $sum."
四、寫一個腳本實現以下功能:input
(1) 傳遞兩個文本文件路徑給腳本;string
(2) 顯示兩個文件中空白行數較多的文件及其空白行的個數;it
(3) 顯示兩個文件中總行數較多的文件及其總行數;io
#!/bin/bash text1=sedawkprocess0915.txt text2=sedawkprocess0917.txt tj1=`grep '^$' sedawkprocess0915.txt | wc -l` tj2=`grep '^$' sedawkprocess0917.txt | wc -l` total1=`cat sedawkprocess0915.txt | wc -l` total2=`cat sedawkprocess0917.txt | wc -l` if [ $tj1 -gt $tj2 ]; then echo "$text1 total blank lines are $tj1" else echo "$text2 total blank lines are $tj2" fi if [ $total1 -gt $total2 ]; then echo "$text1 total lines are $total1" else echo "$text2 total lines are $total2" fi
五、寫一個腳本
(1) 提示用戶輸入一個字符串;
(2) 判斷:
若是輸入的是quit,則退出腳本;
不然,則顯示其輸入的字符串內容;
#!/bin/bash read -p "Please input a string: " -t10 string if [ $string == "quit" ]; then exit 0 else echo "This string is $string." fi
六、寫一個腳本,打印2^n表;n等於一個用戶輸入的值;
#!/bin/bash read -p "Please input a number: " -t10 number i=0 while [ $i -lt $number ];do i=$[$i+1] echo -n -e "2^$i=$[2**$i]" echo done
七、寫一個腳本,寫這麼幾個函數:函數一、實現給定的兩個數值的之和;函數二、取給定兩個數值的最大公約數;函數三、取給定兩個數值的最小公倍數;關於函數的選定、兩個數值的大小都將經過交互式輸入來提供。
#!/bin/bash if [[ $# -le 2 ]];then echo "plz input two number and use space to isolation them!" fi function add() { echo "The two num sum:$1+$2=`expr $1 + $2`" } add $1 $2 declare -i big declare -i small if [ $1 -gt $2 ];then big=$1 small=$2 else big=$2 small=$1 fi gcdlcm(){ i=1 #定義一個循環變量 GCD=1 #定義最大公約數 LCM=1 #定義最小公倍數 btmp=1 #定義用戶輸入的較大的一個變量除以循環變量的值 stmp=1 #定義用戶輸入的較小的一個變量除以循環變量的值 while [ $i -le $small ];do #定義循環條件,循環變量小於或等於用戶輸入的較小的變量 btmp=`expr $big % $i` #求值 stmp=`expr $small % $i` #求值 if [ $btmp -eq 0 ];then #判斷值得餘數是否爲0 if [ $stmp -eq 0 ];then #同上 gcd=$i #若是值得餘數爲0,則獲取最大公約數的值 fi #判斷結束 fi i=`expr $i + 1` #i變量循環,直到i等於用戶輸入的較小的數爲止退出循環。 done #當i=$sma,退出循環 lcm=`expr $small / $gcd` #根據最小公倍數公式求值 lcm=`expr $lcm \* $big` #同上,求最小公倍數公式爲:lcm=$sma*$big%gcd echo "lcm:$lcm" #輸出lcm值 echo "gcd:$gcd" #輸出gcd值 }