Cada declaração select
precisa ser completada antes de passar para a próxima. Uma instrução select
é, na verdade, um tipo especial de loop.
Digamos que eu tenha um conjunto de arquivos, examplefile01
a examplefile10
. Se eu tivesse um roteiro como este:
select f in example*; do
echo "You selected $f"
break
done
Ficaria assim em execução:
$ ./470595.sh
1) examplefile01 4) examplefile04 7) examplefile07 10) examplefile10
2) examplefile02 5) examplefile05 8) examplefile08
3) examplefile03 6) examplefile06 9) examplefile09
#? 5
You selected examplefile05
A declaração break
é importante, porque senão a instrução select
retornaria para apresentar as opções novamente.
Então, no seu caso, você pode querer algo como:
echo "Please Select the Show interface status file"
select FILE1 in *; do
cat "$FILE1" >> outputfile1
break
done
echo "Please Select the Show Vlan file"
select FILE2 in *; do
cat "$FILE2" >> outputfile2
break
done
Você também pode ficar um pouco esperto e evitar as instruções echo
, modificando o prompt fornecido pela instrução select
definindo PS3:
PS3="Please Select the Show interface status file )"
select FILE1 in *; do
cat "$FILE1" >> outputfile1
break
done
PS3="Please Select the Show Vlan file )"
select FILE2 in *; do
cat "$FILE2" >> outputfile2
break
done
Além disso, como você planeja combinar os arquivos, talvez seja mais fácil fazer isso ao mesmo tempo que a seleção final:
PS3="Please Select the Show interface status file )"
select FILE1 in *; do
break
done
PS3="Please Select the Show Vlan file )"
select FILE2 in *; do
cat "$FILE1" "$FILE2" > outputfile
break
done