我目前正在開發一個小型命令列界面工具,不太熟悉 bash 的人可以在他們的計算機上運行該工具。為了保密,我更改了內容,但功能保持不變。
用戶將收到一個提示,然后用戶將用他們的答案做出回應由此,我將獲得兩條資訊: 1.
他們現在作為單個變數的回應 2.我現在得到的變數數量:這個值現在也是一個變數
我當前的腳本如下
echo List your favorite car manufacturers
read $car1 $car2 $car3 #end user can list as many as they wish
for n in {1..$numberofmanufacturers} #finding the number of
variables/manufactures is my second question
do
echo car$n
done
我希望允許用戶輸入任意數量的汽車制造商(1=<n),但是我需要每個制造商都是不同的變數。我還需要能夠自動計算制造商數量,并將該值作為自己的新變數。
我是否更適合讓最終用戶創建一個 .txt 檔案,他們在其中列出(垂直)他們的制造商,從而迫使我使用 wc -l 來確定制造商的數量?
我提前感謝任何幫助。
uj5u.com熱心網友回復:
正如我在評論中所說,每當您想使用多個動態創建的變數時,您應該檢查是否沒有更好的資料結構適合您的用例;幾乎在所有情況下都會有。這是使用 bash 陣列的實作。它以三種不同的方式列印出輸入陣列的內容。
echo List your favorite car manufacturers
# read in an array, split on spaces
read -a cars
echo Looping over array values
for car in "${cars[@]}"
do
echo $car
done
echo Looping over array indices
for i in ${!cars[@]}
do
echo ${cars[$i]}
done
echo Looping from 0 to length-1
let numcars=${#cars[@]}
for i in $(seq 0 $((numcars-1)))
do
echo ${cars[$i]}
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527510.html
標籤:linux重击壳变量
上一篇:Shell腳本中的For回圈
