|
|
|
|
Google Site
|
|||||||
| Forum | Registrera | Blogg | Manualsidor | Forum Regler | Länkar | Album | FAQ | Användare | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
![]() |
|
|
Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|||
|
Interaktiv Array Meny
Detta bör vara enkel, men jag har inte gjort det förut ... Ksh Jag läser en fil till en array och närvarande visar värdena på skärmen. Vad jag behöver göra är att visa en delmängd av dessa värden, sannolikt numrerade och snabbt för användaren att välja en. När de anger numret, det hämtar de associerade array värde och resultat det på skärmen. (denna kommer att användas för mer komplicerade funktioner senare) Till exempel har programmet körs och de 10 första raderna visas. Jag väljer en rad eller slå ett tecken att gå vidare till nästa sida. Detta skulle dumpa de 10 första raderna och läsa in nästa 10 (till en annan array?) Väljer jag ett värde och raden samband med att värdet ekon på skärmen. Alla förslag är mycket uppskattat. Min kod hittills: Kod:
#!/bin/ksh
# define array
set -A line_array
# select input file
file_name="$scripts/cb_list.dat"
# populate the array
i=0
while read file_line
do
line_array[i]=${file_line}
let i=${i}+1
done < ${file_name}
i=0
while [ ${i} -le ${#line_array[*]} ]
do
echo ${line_array[i]}
let i=$i+1
done
# end of variable_define.sh
Senast redigerad av gecko2424; 07-25-2008 vid 10:48.. |
| Sponsrade länkar | ||
|
|
|
|||
|
Inget behov av att "dumpa" värdena eftersom du redan har dem alla lastade i kedjan, kan du bara räkna ut den aktuella sidan offset, (säger 10 för den andra sidan), och bara visa poster 11-20 i kedjan för att sidan.
Din kod ser bra hittills, vilken del är du har problem med? |
|
|||
|
EDIT: Jag har det fungerar i dag, nummer är lägre än för någon att det kan hjälpa. Jag gjorde vad jag behövde en nested funktion. Kod:
#!/bin/ksh
# define array
set -A line_array
# select input file
file_name="cb_list.dat"
# populate the array
i=1
while read file_line
do
line_array[i]=${file_line}
let i=${i}+1
done < ${file_name}
#Display selection options
i=1
x=10
var_select ()
{
while [ ${i} -le ${x} ] && [ ${i} -lt ${#line_array[*]} ]
do
echo
echo $i ${line_array[i]}
let i=$i+1
done
#Select an option
echo
echo "Select an option number or press enter: \c"
read num
disp_select
}
disp_select ()
{
if [ ${num} -le ${i} ]
then
echo "You have selected: ${line_array[num]}"
else
x=${x}+10
var_select
fi
}
var_select
# endSenast redigerad av gecko2424; 07-31-2008 vid 02:41.. |
| Sponsrade länkar | ||
|
|
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| När det gäller interaktiva ID parti jobb | pradeep.edara | UNIX for Dummies Frågor & Svar | 1 | 12-20-2007 10:49 |
| Interaktiv meny | Klashxx | Shell-programmering och Skript | 0 | 12-11-2007 10:03 |
| skapa array innehav tecken från sring sedan echo matris. | rorey_breaker | Shell-programmering och Skript | 5 | 09-28-2007 09:42 |
| Interaktivt läge? | Nomad | UNIX for Dummies Frågor & Svar | 2 | 08-16-2002 07:59 |
| Interactive String | odogbolu98 | Shell-programmering och Skript | 3 | 06-20-2002 02:57 |