Hi all.
I�ve 2 inputs here and would like to produce it in single ouput. I�ve drafted simple shell script but not sure how to put all this together. The final output should be �GROUP-XYZ� instead of �TEST�
Please advise.
Unfortunately, this is not the expected output. Need to fix something on the draft code so that expected output can be produced. Please advise.
type8code0@box:~/dbedit$ ./dbedit-script-service-group
create service_group TEST
create service_group TEST '' services:tcp80
create service_group TEST
create service_group TEST '' services:tcp443
type8code0@box:~/dbedit$
You're welcome... You could adjust the shell loop like so, leaving out the first input file and reading from the terminal instead..
while
printf "Enter new group name : "
read service_group
do
printf "You entered: %s\n" "$service_group"
printf "create service_group %s\n" "$service_group"
while read port
do
printf "create service_group %s '' services:tcp%s\n" "$service_group" "$port"
done < file2
done
Quick question, how to stop this loop besides using combination of Ctrl + C?
type8code0@box:~/dbedit$ ./test
Enter new group name : XYZ
You entered: XYZ
create service_group XYZ
create service_group XYZ '' services:tcp22
create service_group XYZ '' services:tcp80
create service_group XYZ '' services:tcp443
Enter new group name :
You entered:
create service_group
create service_group '' services:tcp22
create service_group '' services:tcp80
create service_group '' services:tcp443
Enter new group name : ABC
You entered: ABC
create service_group ABC
create service_group ABC '' services:tcp22
create service_group ABC '' services:tcp80
create service_group ABC '' services:tcp443
Enter new group name :
You could add this to make it the loop stop for certain input, in this case a zero or no input at all (empty string):
while
printf "Enter new group name (enter 0 to stop): "
read service_group
do
printf "You entered: %s\n" "$service_group"
case $service_group in
0|"") break
esac
printf "create service_group %s\n" "$service_group"
while read port
do
printf "create service_group %s '' services:tcp%s\n" "$service_group" "$port"
done < file
done
Of course, if it always only needs to be executed once, then you can leave out the outer loop altogether:
printf "Enter new group name : "
read service_group
printf "You entered: %s\n" "$service_group"
printf "create service_group %s\n" "$service_group"
while read port
do
printf "create service_group %s '' services:tcp%s\n" "$service_group" "$port"
done < file2