Unable to execute the If condition in shell script
I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.
if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements
container with test name is present but its always going inside the else statement. Could you help me on this.
linux bash shell shellexecute
add a comment |
I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.
if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements
container with test name is present but its always going inside the else statement. Could you help me on this.
linux bash shell shellexecute
3
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28
add a comment |
I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.
if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements
container with test name is present but its always going inside the else statement. Could you help me on this.
linux bash shell shellexecute
I need to check if container is already present with specific name.
Using if statement for same, however container is present with same name but i am not sure why if statement is not running successfully.
if [`echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1`]
then
statements
else
statements
container with test name is present but its always going inside the else statement. Could you help me on this.
linux bash shell shellexecute
linux bash shell shellexecute
asked Nov 26 '18 at 7:19
J.vikJ.vik
386
386
3
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28
add a comment |
3
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28
3
3
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28
add a comment |
2 Answers
2
active
oldest
votes
in addition to @ÔHARA Kazutaka information.
-all
does not exists, try --all
instead.
The --quiet --filter name=test
options are going to make docker
filters output using the container's name, and make it prints to the standard output the CONTAINER ID
if a container exists.
Give a try to this:
container_name=test
container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")
if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi
add a comment |
You need blanks between [
, ]
and `
, i.e. :
if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]
Also, you need fi
after the last line.
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%2f53476313%2funable-to-execute-the-if-condition-in-shell-script%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
in addition to @ÔHARA Kazutaka information.
-all
does not exists, try --all
instead.
The --quiet --filter name=test
options are going to make docker
filters output using the container's name, and make it prints to the standard output the CONTAINER ID
if a container exists.
Give a try to this:
container_name=test
container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")
if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi
add a comment |
in addition to @ÔHARA Kazutaka information.
-all
does not exists, try --all
instead.
The --quiet --filter name=test
options are going to make docker
filters output using the container's name, and make it prints to the standard output the CONTAINER ID
if a container exists.
Give a try to this:
container_name=test
container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")
if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi
add a comment |
in addition to @ÔHARA Kazutaka information.
-all
does not exists, try --all
instead.
The --quiet --filter name=test
options are going to make docker
filters output using the container's name, and make it prints to the standard output the CONTAINER ID
if a container exists.
Give a try to this:
container_name=test
container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")
if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi
in addition to @ÔHARA Kazutaka information.
-all
does not exists, try --all
instead.
The --quiet --filter name=test
options are going to make docker
filters output using the container's name, and make it prints to the standard output the CONTAINER ID
if a container exists.
Give a try to this:
container_name=test
container_id=$(echo password | sudo -S docker ps --all --quiet --filter name="${container_name}")
if [ ! -z "${container_id}" ] ; then
printf "%s is the id of the container with name '%s'n" "${container_id}" "${container_name}"
else
printf "no docker container with name '%s' has been found.n" "${container_name}"
fi
edited Nov 26 '18 at 9:01
answered Nov 26 '18 at 8:50
Jay jargotJay jargot
1,9821511
1,9821511
add a comment |
add a comment |
You need blanks between [
, ]
and `
, i.e. :
if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]
Also, you need fi
after the last line.
add a comment |
You need blanks between [
, ]
and `
, i.e. :
if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]
Also, you need fi
after the last line.
add a comment |
You need blanks between [
, ]
and `
, i.e. :
if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]
Also, you need fi
after the last line.
You need blanks between [
, ]
and `
, i.e. :
if [ `echo password | sudo -S docker ps -all|grep test|cut -d' ' -f1` ]
Also, you need fi
after the last line.
answered Nov 26 '18 at 7:30
ŌHARA KazutakaŌHARA Kazutaka
767
767
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%2f53476313%2funable-to-execute-the-if-condition-in-shell-script%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
3
Possible duplicate of Why should there be a space after '[' and before ']' in Bash?
– jww
Nov 26 '18 at 9:28
Also see How to use Shellcheck, How to debug a bash script? (U&L.SE), How to debug a bash script? (SO), How to debug bash script? (AskU), Debugging Bash scripts, etc.
– jww
Nov 26 '18 at 9:28