參考教程:
感覺都差不多
這裡我想了一下,直接上手寫**可能效果會更好。
//插入排序
function insertsort(a)
a[j] = temp;
} //end for
return a
}
上面是我曾經寫過的插入排序,涉及到的內容有:
函式變數
陣列迴圈
條件語句
邏輯運算子
算數運算子
感覺能用shell寫出來,就對shell理解差不多了。
//插入排序
function insertsort(a)
寫出形如上面的shell**
[root@localhost ~]# cd /root/new
[root@localhost new]# vim insertsort.sh
編輯insertsort.sh,按a鍵插入**
#!/bin/bash
#插入排序
function insertsort()
然後按
esc :wq
退出編輯並儲存
賦執行許可權
[root@localhost new]# chmod u+x insertsort.sh
然後執行該指令碼
我們需要傳入乙個陣列,並列印傳出的陣列
#!/bin/bash
#插入排序
function insertsort()
#嘗試返回各引數,看是不是陣列
echo "第乙個引數$"
echo "第二個引數$"
echo "第三個引數$"
return 0
#這個return好像沒有什麼卵用,只能返回0-255,只能用echo返回了
}for i in $*
do a[i]=$i
done
echo "引數個數為:$"
#輸出陣列個數
insertsort $a
執行指令碼,效果如下
[root@localhost new]# ./insertsort.sh 1 2 3
引數個數為:3
1 2 3
第乙個引數1
第二個引數2
第三個引數3
[root@localhost new]#
這裡使用 ./insertsort.sh執行指令碼,後面跟著的1 2 3是三個引數
然後進入指令碼內容,首先使用乙個迴圈,將引數賦給陣列a
for i in $*
do a[i]=$i
done
$1就是傳入的第乙個引數,
$2就是傳入的第二個引數,
我暫時沒想到如何將所有的引數直接傳入陣列a,只能寫迴圈
其它引數如下
看到接下來的一行**
echo "引數個數為:$"
結果
引數個數為:3
for迴圈中,for i in $*和for i in $@用起來效果一樣
可能在別的情況下是不一樣的吧
現在能傳入陣列a了,然後繼續修改
最後**如下
#!/bin/bash
#插入排序
function insertsort()
echo "陣列長度:$n"
for ((i=1;i
do j=$i
temp=$
#echo "temp:$temp"
#echo "j:$j"
#echo $
while (( $j>0 && $>$temp ))
do a[$j]=$
j=$[$j-1]
done
a[$j]=$temp
done
echo "排序後的陣列為:$"
#echo $n
#echo "a[o]:$"
#echo "a[1]:$"
#echo "a[2]:$"
#echo "a[3]:$"
return 0
}k=0
for i in $*
do #echo "引數為$i"
#echo "陣列長度$"
a[$k]=$i
let "k++"
done
echo "未排序的陣列為:$"
#echo "引數個數為:$"
#輸出陣列個數
insertsort $a
執行插入排序效果如下:
[root@localhost new]# ./insertsort.sh 5 4 3 2 1
未排序的陣列為:5 4 3 2 1
陣列長度:5
排序後的陣列為:1 2 3 4 5
[root@localhost new]#
說實話,比寫c語言還麻煩。 Shell程式設計 shell特性
linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...
Shell程式設計 Shell函式
shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...
Shell程式設計
1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...