Checking for invalid date in bash script
Clash Royale CLAN TAG#URR8PPP
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am checking for a valid date scrpt.bash test 2019-05-03
date -d $2 2>: 1>:; c=$?
If $c
is 1 then the date is invalid. If I enter 2019-05-03
I will get a 0 which is correct. If i enter 2019-05-03u
I get a 0 which is incorrect. I can enter 2019-05-03uu
then it throws an error. How can I just check if the date is valid.
bash date error-handling
add a comment |
I am checking for a valid date scrpt.bash test 2019-05-03
date -d $2 2>: 1>:; c=$?
If $c
is 1 then the date is invalid. If I enter 2019-05-03
I will get a 0 which is correct. If i enter 2019-05-03u
I get a 0 which is incorrect. I can enter 2019-05-03uu
then it throws an error. How can I just check if the date is valid.
bash date error-handling
1
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Have you trydate -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
1
date is valid against what criteria? Against what yourdate -d
supports?
– Stéphane Chazelas
Mar 12 at 14:32
add a comment |
I am checking for a valid date scrpt.bash test 2019-05-03
date -d $2 2>: 1>:; c=$?
If $c
is 1 then the date is invalid. If I enter 2019-05-03
I will get a 0 which is correct. If i enter 2019-05-03u
I get a 0 which is incorrect. I can enter 2019-05-03uu
then it throws an error. How can I just check if the date is valid.
bash date error-handling
I am checking for a valid date scrpt.bash test 2019-05-03
date -d $2 2>: 1>:; c=$?
If $c
is 1 then the date is invalid. If I enter 2019-05-03
I will get a 0 which is correct. If i enter 2019-05-03u
I get a 0 which is incorrect. I can enter 2019-05-03uu
then it throws an error. How can I just check if the date is valid.
bash date error-handling
bash date error-handling
asked Mar 12 at 14:06
user3525290user3525290
1224
1224
1
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Have you trydate -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
1
date is valid against what criteria? Against what yourdate -d
supports?
– Stéphane Chazelas
Mar 12 at 14:32
add a comment |
1
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Have you trydate -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
1
date is valid against what criteria? Against what yourdate -d
supports?
– Stéphane Chazelas
Mar 12 at 14:32
1
1
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Have you try
date -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Have you try
date -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
1
1
date is valid against what criteria? Against what your
date -d
supports?– Stéphane Chazelas
Mar 12 at 14:32
date is valid against what criteria? Against what your
date -d
supports?– Stéphane Chazelas
Mar 12 at 14:32
add a comment |
1 Answer
1
active
oldest
votes
If date is always provided in this format: '2019-05-03', this will probably work always:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2funix.stackexchange.com%2fquestions%2f505886%2fchecking-for-invalid-date-in-bash-script%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
If date is always provided in this format: '2019-05-03', this will probably work always:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi
add a comment |
If date is always provided in this format: '2019-05-03', this will probably work always:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi
add a comment |
If date is always provided in this format: '2019-05-03', this will probably work always:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi
If date is always provided in this format: '2019-05-03', this will probably work always:
#!/bin/sh -
if [ -n "$2" ] && [ "$(date -d "$2" +%Y-%m-%d 2> /dev/null)" = "$2" ]; then
echo 'This date is valid'
fi
edited Mar 12 at 14:36
Stéphane Chazelas
314k57594952
314k57594952
answered Mar 12 at 14:31
Luciano Andress MartiniLuciano Andress Martini
4,1901237
4,1901237
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- 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%2funix.stackexchange.com%2fquestions%2f505886%2fchecking-for-invalid-date-in-bash-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
1
Is the date always provided in this format? 2019-05-03
– Luciano Andress Martini
Mar 12 at 14:24
Have you try
date -d $2 && c=$?
– Romeo Ninov
Mar 12 at 14:24
Romeo as he says date is returning sucess (0), even if the date contain a additional character at end. So && will make no difference as it will check the command return too to make a decision.
– Luciano Andress Martini
Mar 12 at 14:25
1
date is valid against what criteria? Against what your
date -d
supports?– Stéphane Chazelas
Mar 12 at 14:32