How can I loop through a list, ignoring some elements in the list?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I have two lists, which my script loops through. I want to use only the VMs in the lists and ignore the hosts. The list size and order may very so I can't use indexes. I How might I do this?
Currently I am looping through all elements, which is not desired as HOSTS are not in hosts file as they are in DNS.
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ ! `grep $host /etc/hosts` ]]
then
echo "$host is not in /etc/hosts file. Exiting."
exit
fi
done
bash shell
add a comment |
I have two lists, which my script loops through. I want to use only the VMs in the lists and ignore the hosts. The list size and order may very so I can't use indexes. I How might I do this?
Currently I am looping through all elements, which is not desired as HOSTS are not in hosts file as they are in DNS.
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ ! `grep $host /etc/hosts` ]]
then
echo "$host is not in /etc/hosts file. Exiting."
exit
fi
done
bash shell
add a comment |
I have two lists, which my script loops through. I want to use only the VMs in the lists and ignore the hosts. The list size and order may very so I can't use indexes. I How might I do this?
Currently I am looping through all elements, which is not desired as HOSTS are not in hosts file as they are in DNS.
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ ! `grep $host /etc/hosts` ]]
then
echo "$host is not in /etc/hosts file. Exiting."
exit
fi
done
bash shell
I have two lists, which my script loops through. I want to use only the VMs in the lists and ignore the hosts. The list size and order may very so I can't use indexes. I How might I do this?
Currently I am looping through all elements, which is not desired as HOSTS are not in hosts file as they are in DNS.
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ ! `grep $host /etc/hosts` ]]
then
echo "$host is not in /etc/hosts file. Exiting."
exit
fi
done
bash shell
bash shell
edited Nov 14 '18 at 7:52
mickt
asked Nov 14 '18 at 7:30
micktmickt
145
145
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Just check for a string match to skip:
if [[ $host =~ HOST* ]]; then continue; fi
at the top of the loop.
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
add a comment |
Testing string whether contains as:
if [[ $host == *VM* ]]
Here is your complete test:
#!/bin/bash
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ $host == *VM* ]]; then
echo "$host contains VM";
else
echo "$host doesn't contain VM";
fi
done
output will be:
VM01 contains VM
VM02 contains VM
VM03 contains VM
HOST01 doesn't contain VM
HOST02 doesn't contain VM
VM04 contains VM
VM05 contains VM
VM06 contains VM
HOST03 doesn't contain VM
HOST04 doesn't contain VM
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295083%2fhow-can-i-loop-through-a-list-ignoring-some-elements-in-the-list%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Just check for a string match to skip:
if [[ $host =~ HOST* ]]; then continue; fi
at the top of the loop.
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
add a comment |
Just check for a string match to skip:
if [[ $host =~ HOST* ]]; then continue; fi
at the top of the loop.
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
add a comment |
Just check for a string match to skip:
if [[ $host =~ HOST* ]]; then continue; fi
at the top of the loop.
Just check for a string match to skip:
if [[ $host =~ HOST* ]]; then continue; fi
at the top of the loop.
answered Nov 14 '18 at 7:56
kabanuskabanus
12.7k31543
12.7k31543
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
add a comment |
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
Such a simple solution. Thanks!
– mickt
Nov 14 '18 at 7:59
add a comment |
Testing string whether contains as:
if [[ $host == *VM* ]]
Here is your complete test:
#!/bin/bash
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ $host == *VM* ]]; then
echo "$host contains VM";
else
echo "$host doesn't contain VM";
fi
done
output will be:
VM01 contains VM
VM02 contains VM
VM03 contains VM
HOST01 doesn't contain VM
HOST02 doesn't contain VM
VM04 contains VM
VM05 contains VM
VM06 contains VM
HOST03 doesn't contain VM
HOST04 doesn't contain VM
add a comment |
Testing string whether contains as:
if [[ $host == *VM* ]]
Here is your complete test:
#!/bin/bash
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ $host == *VM* ]]; then
echo "$host contains VM";
else
echo "$host doesn't contain VM";
fi
done
output will be:
VM01 contains VM
VM02 contains VM
VM03 contains VM
HOST01 doesn't contain VM
HOST02 doesn't contain VM
VM04 contains VM
VM05 contains VM
VM06 contains VM
HOST03 doesn't contain VM
HOST04 doesn't contain VM
add a comment |
Testing string whether contains as:
if [[ $host == *VM* ]]
Here is your complete test:
#!/bin/bash
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ $host == *VM* ]]; then
echo "$host contains VM";
else
echo "$host doesn't contain VM";
fi
done
output will be:
VM01 contains VM
VM02 contains VM
VM03 contains VM
HOST01 doesn't contain VM
HOST02 doesn't contain VM
VM04 contains VM
VM05 contains VM
VM06 contains VM
HOST03 doesn't contain VM
HOST04 doesn't contain VM
Testing string whether contains as:
if [[ $host == *VM* ]]
Here is your complete test:
#!/bin/bash
production=(VM01 VM02 VM03 HOST01 HOST02)
staging=(VM04 VM05 VM06 HOST03 HOST04)
for host in $production[@] $staging[@]
do
if [[ $host == *VM* ]]; then
echo "$host contains VM";
else
echo "$host doesn't contain VM";
fi
done
output will be:
VM01 contains VM
VM02 contains VM
VM03 contains VM
HOST01 doesn't contain VM
HOST02 doesn't contain VM
VM04 contains VM
VM05 contains VM
VM06 contains VM
HOST03 doesn't contain VM
HOST04 doesn't contain VM
answered Nov 14 '18 at 8:03
HearenHearen
2,97811530
2,97811530
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295083%2fhow-can-i-loop-through-a-list-ignoring-some-elements-in-the-list%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown