Quando você quiser apresentar um menu ao seu usuário, pense no comando select
:
# Ask the user which object type they would like to rename
objects=( policy netgroup zonegroup host iprange ipaddr subnet netmap )
PS3="Which network object type would you like to edit? "
select object in "${objects[@]}" all; do
[[ -n "$object" ]] && break
done
if [[ "$object" == "all" ]]; then
# comma separated list of all objects
object=$( IFS=,; echo "${objects[*]}" )
fi
cf -TJK name "$object" q | etc etc etc
# ...........^ get into the habit of quoting your variables.
Estou assumindo bash aqui. Deixe-nos saber se essa não é a casca que você está usando.
Se você estiver preso em um shell sem matrizes, poderá fazer isso, pois os objetos são palavras simples:
objects="policy netgroup zonegroup host iprange ipaddr subnet netmap"
PS3="Which network object type would you like to edit? "
select object in $objects all; do # $objects is specifically not quoted here ...
[ -n "$object" ] && break
done
if [ "$object" = "all" ]; then
object=$( set -- $objects; IFS=,; echo "$*" ) # ... or here
fi
cf -TJK name "$object" q | etc etc etc