bash script exiting when setting variable to curl output
Trying to create a function to check if there are issues with the SSL on a webpage.In the specific scenario we've setup the expected output for curl https://domain includes:
curl: (60) SSL certificate problem: self signed certificate
...we are using grep, as per the line below to to set the SSL_STATUS variable to that line which we will then pump through an if statement. Problem is that it sets the variable and then drops out of the script for no apparent reason:
+ https_status
++ curl https://steelrain.eu
++ grep 'SSL certificate problem'
+ SSL_STATUS='curl: (60) SSL certificate problem: self signed certificate'
Having tested this is not the result of the grep but curl, and I do not know why (it still occurred when using SSL_STATUS=$( curl https://${DOMAIN}
) which is the basis).
I might just not be understanding how something works here because I'm thick but any assistance would be appreciated.
SSL_STATUS=$( curl https://${DOMAIN} 2>&1 | grep "SSL certificate problem" )
probably should have mentioned before but setting the function to just run the curl command drops it out of the script too so it's not setting the output to a variable that's causing trouble.
bash function variables curl
add a comment |
Trying to create a function to check if there are issues with the SSL on a webpage.In the specific scenario we've setup the expected output for curl https://domain includes:
curl: (60) SSL certificate problem: self signed certificate
...we are using grep, as per the line below to to set the SSL_STATUS variable to that line which we will then pump through an if statement. Problem is that it sets the variable and then drops out of the script for no apparent reason:
+ https_status
++ curl https://steelrain.eu
++ grep 'SSL certificate problem'
+ SSL_STATUS='curl: (60) SSL certificate problem: self signed certificate'
Having tested this is not the result of the grep but curl, and I do not know why (it still occurred when using SSL_STATUS=$( curl https://${DOMAIN}
) which is the basis).
I might just not be understanding how something works here because I'm thick but any assistance would be appreciated.
SSL_STATUS=$( curl https://${DOMAIN} 2>&1 | grep "SSL certificate problem" )
probably should have mentioned before but setting the function to just run the curl command drops it out of the script too so it's not setting the output to a variable that's causing trouble.
bash function variables curl
Do you have aset -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).
– Marcus
Jan 18 at 20:22
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29
add a comment |
Trying to create a function to check if there are issues with the SSL on a webpage.In the specific scenario we've setup the expected output for curl https://domain includes:
curl: (60) SSL certificate problem: self signed certificate
...we are using grep, as per the line below to to set the SSL_STATUS variable to that line which we will then pump through an if statement. Problem is that it sets the variable and then drops out of the script for no apparent reason:
+ https_status
++ curl https://steelrain.eu
++ grep 'SSL certificate problem'
+ SSL_STATUS='curl: (60) SSL certificate problem: self signed certificate'
Having tested this is not the result of the grep but curl, and I do not know why (it still occurred when using SSL_STATUS=$( curl https://${DOMAIN}
) which is the basis).
I might just not be understanding how something works here because I'm thick but any assistance would be appreciated.
SSL_STATUS=$( curl https://${DOMAIN} 2>&1 | grep "SSL certificate problem" )
probably should have mentioned before but setting the function to just run the curl command drops it out of the script too so it's not setting the output to a variable that's causing trouble.
bash function variables curl
Trying to create a function to check if there are issues with the SSL on a webpage.In the specific scenario we've setup the expected output for curl https://domain includes:
curl: (60) SSL certificate problem: self signed certificate
...we are using grep, as per the line below to to set the SSL_STATUS variable to that line which we will then pump through an if statement. Problem is that it sets the variable and then drops out of the script for no apparent reason:
+ https_status
++ curl https://steelrain.eu
++ grep 'SSL certificate problem'
+ SSL_STATUS='curl: (60) SSL certificate problem: self signed certificate'
Having tested this is not the result of the grep but curl, and I do not know why (it still occurred when using SSL_STATUS=$( curl https://${DOMAIN}
) which is the basis).
I might just not be understanding how something works here because I'm thick but any assistance would be appreciated.
SSL_STATUS=$( curl https://${DOMAIN} 2>&1 | grep "SSL certificate problem" )
probably should have mentioned before but setting the function to just run the curl command drops it out of the script too so it's not setting the output to a variable that's causing trouble.
bash function variables curl
bash function variables curl
edited Jan 18 at 20:22
Jean-François Fabre
102k954111
102k954111
asked Jan 18 at 20:16
SnakelegsSnakelegs
61
61
Do you have aset -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).
– Marcus
Jan 18 at 20:22
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29
add a comment |
Do you have aset -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).
– Marcus
Jan 18 at 20:22
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29
Do you have a
set -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).– Marcus
Jan 18 at 20:22
Do you have a
set -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).– Marcus
Jan 18 at 20:22
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29
add a comment |
1 Answer
1
active
oldest
votes
set -e was in the main script for debugging:
set -euox pipefail
Commented out and now it's sorted. Cheers!
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%2f54260849%2fbash-script-exiting-when-setting-variable-to-curl-output%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
set -e was in the main script for debugging:
set -euox pipefail
Commented out and now it's sorted. Cheers!
add a comment |
set -e was in the main script for debugging:
set -euox pipefail
Commented out and now it's sorted. Cheers!
add a comment |
set -e was in the main script for debugging:
set -euox pipefail
Commented out and now it's sorted. Cheers!
set -e was in the main script for debugging:
set -euox pipefail
Commented out and now it's sorted. Cheers!
answered Jan 18 at 20:53
SnakelegsSnakelegs
61
61
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%2f54260849%2fbash-script-exiting-when-setting-variable-to-curl-output%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
Do you have a
set -e
somewhere in your script? It will stop your script if any command returns a non-zero exit code (like curl does when there is a certificate problem).– Marcus
Jan 18 at 20:22
Thank you so much. A colleague suggested using set -euox pipefail to debug and that was making the whole thing fall over. So glad I spent hours rewriting the functions cause of that :) Thanks again dude
– Snakelegs
Jan 18 at 20:29