2013-02-28 56 views
0

我構建此數組以列出允許用戶輸入數字而不是確切目錄名稱的目錄內容。我不知道如何從只有一個數字的輸入中獲取所選目錄的名稱?我需要它來確定從將要使用的陣列中選取哪個確切的目錄。感謝所有願意幫助的人。嘗試從用戶選擇數組中獲取目錄名稱

if [ -d $TDDIR ]; then 
# List folders in $TDDIR 
VAR1=1 
FILES=(`ls $TDDIR`) 
FILECNT=${#FILES[*]} 
# List number of folders available 
clear 
echo "Current list of folders to pick from." 
echo 
while [ $VAR1 -lt $FILECNT ]; do 
    echo -e "[$VAR1] \t ${FILES[VAR1]}" 
    let "VAR1 += 1" 
done 
# Reduce VAR1 by one 
let "VAR1 -= 1" 
# Have user choose which to use for scan 
read -p "Which file would you like to scan 1 - $VAR1 or 0 to exit? :" INPUT 
    if [ $INPUT -eq '0' ]; then 
    echo "You chose to quit. Exiting now." 
    sleep 2 
    exit 0 
    fi 
while (($INPUT > $FILECNT || $INPUT < 1 || $INPUT > $VAR1)); do 
echo 
echo "You selected $INPUT." 
read -p "$INPUT is not valid. Choose a valid option: " INPUT 
done 
else exit 
fi 

回答

1
echo ${FILES[(($VAR - 1))]} 

-1是因爲對於bash陣列索引從0

旁註開始,LS是不適合的任務(見:Parsing ls output S)

另外,你可以嘗試使用選擇菜單(見:Bash Script Menus and Functions

+0

感謝您的幫助,我會嘗試這些選項,但我可以cat或printf數組的輸出,並從那裏獲取目錄名稱,然後-c出來呢? – 2013-03-02 16:33:31

+0

我不明白你的問題,這個答案的第一行給你的解決方案 – Sorin 2013-03-04 10:35:08