使用動態變數進行動態資料比較
現在有一個需求,輸入一串數,輸入的數個數還不固定,需要得到最小的那個數和對應的下標
如果說傳入的數的個數固定,直接用for迴圈來得到最值 其實也不難。使用程式語言java,c等都可以實現。
使用動態變數可以很方便的初始化多個變數,對傳入的數進行統計和比較。
動態變數的初始化有如下幾種形式:
param_no=$#
#初始化環境變數,如果傳入5個數,則會初始化5個變數。
for i in {1..$param_no}
do
export par${i}_=`eval echo \\${${i}}`
done
min_sum=$par1_
min_par=par1_
for i in {2..$param_no};
do
j=`expr $i - 1`
tmp_cur_par=par${i}_
#得到動態的環境變數,對動態變數的值和其他變數進行匹配。
tmp_cur_sum=`eval echo \\${${tmp_cur_par}}`
if [ $min_sum -le $tmp_cur_sum ]
then
min_sum=$min_sum
min_par=$min_par
else
min_sum=$tmp_cur_sum
min_par=$tmp_cur_par
fi
done
echo $min_par
簡單測試如下:
>$ ksh min.sh 8 9 2 4 5
2 par3_sum
小數也是可以支援的
>$ ksh min.sh 88 99.5 1.1 10 55
1.1 par3_sum
9個數進行比較
$ ksh min.sh 4 5 6 3 2 9 2 1 2
1 par8_sum
2個數進行比較
$ ksh min.sh 2 5
2 par1_sum
如果說傳入的數的個數固定,直接用for迴圈來得到最值 其實也不難。使用程式語言java,c等都可以實現。
使用動態變數可以很方便的初始化多個變數,對傳入的數進行統計和比較。
動態變數的初始化有如下幾種形式:
param_no=$#
#初始化環境變數,如果傳入5個數,則會初始化5個變數。
for i in {1..$param_no}
do
export par${i}_=`eval echo \\${${i}}`
done
min_sum=$par1_
min_par=par1_
for i in {2..$param_no};
do
j=`expr $i - 1`
tmp_cur_par=par${i}_
#得到動態的環境變數,對動態變數的值和其他變數進行匹配。
tmp_cur_sum=`eval echo \\${${tmp_cur_par}}`
if [ $min_sum -le $tmp_cur_sum ]
then
min_sum=$min_sum
min_par=$min_par
else
min_sum=$tmp_cur_sum
min_par=$tmp_cur_par
fi
done
echo $min_par
簡單測試如下:
>$ ksh min.sh 8 9 2 4 5
2 par3_sum
小數也是可以支援的
>$ ksh min.sh 88 99.5 1.1 10 55
1.1 par3_sum
9個數進行比較
$ ksh min.sh 4 5 6 3 2 9 2 1 2
1 par8_sum
2個數進行比較
$ ksh min.sh 2 5
2 par1_sum
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 靜態路由和動態路由的比較路由
- shell動態指令碼和pl/sql動態指令碼的比較指令碼SQL
- 物件呼叫動態變數物件變數
- 幾個動態代理Proxy工具效能比較
- 使用Echarts和Ajax動態載入資料進行大資料視覺化Echarts大資料視覺化
- 動態改變類結構 & 動態…
- JS建立動態的變數名JS變數
- Linq to Sql : 動態構造Expression進行動態查詢SQLExpress
- SQL server 動態SQL對變數講行賦值SQLServer變數賦值
- 數碼管顯示動態資料
- 固態行動硬碟資料恢復硬碟資料恢復
- phpstorm進行動態除錯PHPORM除錯
- Go 中的動態作用域變數Go變數
- Vue select 繫結動態變數Vue變數
- MySQL 8.0 5.1.6.2 動態系統變數MySql變數
- SQL Server動態SQL,繫結變數SQLServer變數
- 一文盤點資料行業的動態演變(附連結)行業
- 動態引數,靜態引數
- 繫結變數在靜態sql和動態sql中變數SQL
- Python中已有的多個變數批量(動態)使用Python變數
- mysql較為重要的狀態變數MySql變數
- ListView動態更新資料View
- Java動態代理 jdk和cglib的實現比較JavaJDKCGLib
- 動態企業建模DEM與ERP的比較(轉)
- JavaScript百分比動態進度條JavaScript
- JS如何動態生成變數名[重點]JS變數
- vue如何通過變數動態拼接urlVue變數
- 對於systemverilog靜態變數和動態變數 ,描述不正確的是()。變數
- 使用expect執行動態指令碼指令碼
- 為什麼動態型別語言相對比較慢?型別
- 資料庫動態脫敏資料庫
- ListView動態載入資料View
- Springboot(1)----動態獲取資料庫密碼進行使用Spring Boot資料庫密碼
- 動態庫使用
- Python 動態變數名與呼叫介紹Python變數
- Python 動態變數名定義與呼叫Python變數
- Python動態變數名定義與呼叫Python變數
- 動態修改 NodeJS 程式中的變數值NodeJS變數