How to repeat loop n times in BashBash File existence test is always trueCount number of times each line repeats itself, In case Insensitive mannerHow can I break out of a while loop, from within a nested case statement?while read loopHow to allow a bash shell script to loop for 3 retries before exiting (prompt for username/password)using else if in a bash alias(homework)I am writing an If then else to check for specific numeric value in a fileRepeat 3000 times a sequence of characters “OW HW1 HW2” in a columnHow do I loop an if statement in bash?write a shell script to change the file permission from read and write to read,write and execute permissions
Can one live in the U.S. and not use a credit card?
Create chunks from an array
Cycles on the torus
Why do phishing e-mails use faked e-mail addresses instead of the real one?
Automaton recognizing ambiguously accepted words of another automaton
What would be the most expensive material to an intergalactic society?
Are all players supposed to be able to see each others' character sheets?
What is this tube in a jet engine's air intake?
What does the Digital Threat scope actually do?
How should I solve this integral with changing parameters?
Traveling to heavily polluted city, what practical measures can I take to minimize impact?
"If + would" conditional in present perfect tense
Help! My Character is too much for her story!
Is "cogitate" used appropriately in "I cogitate that success relies on hard work"?
How do we create new idioms and use them in a novel?
Under what conditions can the right to remain silent be revoked in the USA?
What does *dead* mean in *What do you mean, dead?*?
Are these two graphs isomorphic? Why/Why not?
What should I do when a paper is published similar to my PhD thesis without citation?
Why restrict private health insurance?
Will expression retain the same definition if particle is changed?
When an outsider describes family relationships, which point of view are they using?
Short scifi story where reproductive organs are converted to produce "materials", pregnant protagonist is "found fit" to be a mother
Called into a meeting and told we are being made redundant (laid off) and "not to share outside". Can I tell my partner?
How to repeat loop n times in Bash
Bash File existence test is always trueCount number of times each line repeats itself, In case Insensitive mannerHow can I break out of a while loop, from within a nested case statement?while read loopHow to allow a bash shell script to loop for 3 retries before exiting (prompt for username/password)using else if in a bash alias(homework)I am writing an If then else to check for specific numeric value in a fileRepeat 3000 times a sequence of characters “OW HW1 HW2” in a columnHow do I loop an if statement in bash?write a shell script to change the file permission from read and write to read,write and execute permissions
I have below scenario like:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
bash shell-script
add a comment |
I have below scenario like:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
bash shell-script
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
1
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07
add a comment |
I have below scenario like:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
bash shell-script
I have below scenario like:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
bash shell-script
bash shell-script
edited 20 mins ago
Rui F Ribeiro
41.3k1481140
41.3k1481140
asked Aug 5 '18 at 6:31
Rocky86Rocky86
7119
7119
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
1
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07
add a comment |
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
1
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
1
1
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07
add a comment |
3 Answers
3
active
oldest
votes
There are many ways to do this loop.
With ksh93
syntax (also supported by zsh
and bash
):
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
sleep 10
done
For any POSIX-like shell:
n=0
while [ "$n" -lt 10 ] && [ ! -e filename ]; do
n=$(( n + 1 ))
sleep 10
done
Both of the loops sleep 10 seconds in each iteration before testing the existence of the file again.
After the loop has finished, you will have to test for existence of the file a last time to figure out whether the loop exited due to running 10 times or due to the file appearing.
If you wish, and if you have access to inotify-tools, you may replace the sleep 10
call with
inotifywait -q -t 10 -e create ./ >/dev/null
This would wait for a file creation event to occur in the current directory, but would time out after 10 seconds. This way your loop would exit as soon as the given filename appeared (if it appeared).
The full code, with inotifywait
(replace with sleep 10
if you don't want that), may look like
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
inotifywait -q -t 10 -e create ./ >/dev/null
done
if [ -e filename ]; then
echo 'file appeared!'
else
echo 'file did not turn up in time'
fi
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
@ilkkachu Yes, that's a good idea, but here I'm just usinginotifywait
as a drop-in replacement forsleep
.
– Kusalananda
Aug 5 '18 at 7:15
add a comment |
If the count is not a variable you can use brace expansion:
for i in 1..10 # you can also use 0..9
do
whatever
done
If the count is a variable you can use the seq
command:
count=10
for i in $(seq $count)
do
whatever
done
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
add a comment |
n=0
until [ "$((n+=1))" -gt 10 ]
do <exists? command exit
done
echo oh noes!
though test -e file && exit
is more flexible
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file likeexists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...
– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress itdone 2<>/dev/null
. doesbash
does that scripted? i thought it only effed that up in an-i
nteractive context. still,exists?
is as much as a filler name asfile
. but yeah, i hate quoting in redirects - if screws so much up.
– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i notedtest -e
.
– mikeserv
Aug 5 '18 at 7:22
|
show 3 more comments
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%2f460595%2fhow-to-repeat-loop-n-times-in-bash%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
There are many ways to do this loop.
With ksh93
syntax (also supported by zsh
and bash
):
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
sleep 10
done
For any POSIX-like shell:
n=0
while [ "$n" -lt 10 ] && [ ! -e filename ]; do
n=$(( n + 1 ))
sleep 10
done
Both of the loops sleep 10 seconds in each iteration before testing the existence of the file again.
After the loop has finished, you will have to test for existence of the file a last time to figure out whether the loop exited due to running 10 times or due to the file appearing.
If you wish, and if you have access to inotify-tools, you may replace the sleep 10
call with
inotifywait -q -t 10 -e create ./ >/dev/null
This would wait for a file creation event to occur in the current directory, but would time out after 10 seconds. This way your loop would exit as soon as the given filename appeared (if it appeared).
The full code, with inotifywait
(replace with sleep 10
if you don't want that), may look like
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
inotifywait -q -t 10 -e create ./ >/dev/null
done
if [ -e filename ]; then
echo 'file appeared!'
else
echo 'file did not turn up in time'
fi
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
@ilkkachu Yes, that's a good idea, but here I'm just usinginotifywait
as a drop-in replacement forsleep
.
– Kusalananda
Aug 5 '18 at 7:15
add a comment |
There are many ways to do this loop.
With ksh93
syntax (also supported by zsh
and bash
):
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
sleep 10
done
For any POSIX-like shell:
n=0
while [ "$n" -lt 10 ] && [ ! -e filename ]; do
n=$(( n + 1 ))
sleep 10
done
Both of the loops sleep 10 seconds in each iteration before testing the existence of the file again.
After the loop has finished, you will have to test for existence of the file a last time to figure out whether the loop exited due to running 10 times or due to the file appearing.
If you wish, and if you have access to inotify-tools, you may replace the sleep 10
call with
inotifywait -q -t 10 -e create ./ >/dev/null
This would wait for a file creation event to occur in the current directory, but would time out after 10 seconds. This way your loop would exit as soon as the given filename appeared (if it appeared).
The full code, with inotifywait
(replace with sleep 10
if you don't want that), may look like
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
inotifywait -q -t 10 -e create ./ >/dev/null
done
if [ -e filename ]; then
echo 'file appeared!'
else
echo 'file did not turn up in time'
fi
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
@ilkkachu Yes, that's a good idea, but here I'm just usinginotifywait
as a drop-in replacement forsleep
.
– Kusalananda
Aug 5 '18 at 7:15
add a comment |
There are many ways to do this loop.
With ksh93
syntax (also supported by zsh
and bash
):
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
sleep 10
done
For any POSIX-like shell:
n=0
while [ "$n" -lt 10 ] && [ ! -e filename ]; do
n=$(( n + 1 ))
sleep 10
done
Both of the loops sleep 10 seconds in each iteration before testing the existence of the file again.
After the loop has finished, you will have to test for existence of the file a last time to figure out whether the loop exited due to running 10 times or due to the file appearing.
If you wish, and if you have access to inotify-tools, you may replace the sleep 10
call with
inotifywait -q -t 10 -e create ./ >/dev/null
This would wait for a file creation event to occur in the current directory, but would time out after 10 seconds. This way your loop would exit as soon as the given filename appeared (if it appeared).
The full code, with inotifywait
(replace with sleep 10
if you don't want that), may look like
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
inotifywait -q -t 10 -e create ./ >/dev/null
done
if [ -e filename ]; then
echo 'file appeared!'
else
echo 'file did not turn up in time'
fi
There are many ways to do this loop.
With ksh93
syntax (also supported by zsh
and bash
):
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
sleep 10
done
For any POSIX-like shell:
n=0
while [ "$n" -lt 10 ] && [ ! -e filename ]; do
n=$(( n + 1 ))
sleep 10
done
Both of the loops sleep 10 seconds in each iteration before testing the existence of the file again.
After the loop has finished, you will have to test for existence of the file a last time to figure out whether the loop exited due to running 10 times or due to the file appearing.
If you wish, and if you have access to inotify-tools, you may replace the sleep 10
call with
inotifywait -q -t 10 -e create ./ >/dev/null
This would wait for a file creation event to occur in the current directory, but would time out after 10 seconds. This way your loop would exit as soon as the given filename appeared (if it appeared).
The full code, with inotifywait
(replace with sleep 10
if you don't want that), may look like
for (( i=0; i<10; ++i)); do
[ -e filename ] && break
inotifywait -q -t 10 -e create ./ >/dev/null
done
if [ -e filename ]; then
echo 'file appeared!'
else
echo 'file did not turn up in time'
fi
edited Aug 5 '18 at 7:54
answered Aug 5 '18 at 6:37
KusalanandaKusalananda
134k17255418
134k17255418
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
@ilkkachu Yes, that's a good idea, but here I'm just usinginotifywait
as a drop-in replacement forsleep
.
– Kusalananda
Aug 5 '18 at 7:15
add a comment |
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
@ilkkachu Yes, that's a good idea, but here I'm just usinginotifywait
as a drop-in replacement forsleep
.
– Kusalananda
Aug 5 '18 at 7:15
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
With inotify, you could almost replace the whole loop. Just test if the file is there, and if not, inotifywait for a 100 seconds. Almost, since the file could be created just between the test and the inotify, and you'd sleep for the full 100 seconds before timing out...
– ilkkachu
Aug 5 '18 at 7:12
1
1
@ilkkachu Yes, that's a good idea, but here I'm just using
inotifywait
as a drop-in replacement for sleep
.– Kusalananda
Aug 5 '18 at 7:15
@ilkkachu Yes, that's a good idea, but here I'm just using
inotifywait
as a drop-in replacement for sleep
.– Kusalananda
Aug 5 '18 at 7:15
add a comment |
If the count is not a variable you can use brace expansion:
for i in 1..10 # you can also use 0..9
do
whatever
done
If the count is a variable you can use the seq
command:
count=10
for i in $(seq $count)
do
whatever
done
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
add a comment |
If the count is not a variable you can use brace expansion:
for i in 1..10 # you can also use 0..9
do
whatever
done
If the count is a variable you can use the seq
command:
count=10
for i in $(seq $count)
do
whatever
done
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
add a comment |
If the count is not a variable you can use brace expansion:
for i in 1..10 # you can also use 0..9
do
whatever
done
If the count is a variable you can use the seq
command:
count=10
for i in $(seq $count)
do
whatever
done
If the count is not a variable you can use brace expansion:
for i in 1..10 # you can also use 0..9
do
whatever
done
If the count is a variable you can use the seq
command:
count=10
for i in $(seq $count)
do
whatever
done
answered Aug 5 '18 at 6:47
xenoidxenoid
3,1601725
3,1601725
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
add a comment |
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
I want to loop only if file is not found (max. 10 times). If found lets say 3rd time then exit successfully
– Rocky86
Aug 5 '18 at 6:49
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
@Rocky86 : This does not contradict the solution proposed by xenoid. Nobody forces you to count until the end ....
– user1934428
Aug 6 '18 at 9:46
add a comment |
n=0
until [ "$((n+=1))" -gt 10 ]
do <exists? command exit
done
echo oh noes!
though test -e file && exit
is more flexible
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file likeexists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...
– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress itdone 2<>/dev/null
. doesbash
does that scripted? i thought it only effed that up in an-i
nteractive context. still,exists?
is as much as a filler name asfile
. but yeah, i hate quoting in redirects - if screws so much up.
– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i notedtest -e
.
– mikeserv
Aug 5 '18 at 7:22
|
show 3 more comments
n=0
until [ "$((n+=1))" -gt 10 ]
do <exists? command exit
done
echo oh noes!
though test -e file && exit
is more flexible
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file likeexists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...
– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress itdone 2<>/dev/null
. doesbash
does that scripted? i thought it only effed that up in an-i
nteractive context. still,exists?
is as much as a filler name asfile
. but yeah, i hate quoting in redirects - if screws so much up.
– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i notedtest -e
.
– mikeserv
Aug 5 '18 at 7:22
|
show 3 more comments
n=0
until [ "$((n+=1))" -gt 10 ]
do <exists? command exit
done
echo oh noes!
though test -e file && exit
is more flexible
n=0
until [ "$((n+=1))" -gt 10 ]
do <exists? command exit
done
echo oh noes!
though test -e file && exit
is more flexible
answered Aug 5 '18 at 6:36
mikeservmikeserv
45.8k668160
45.8k668160
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file likeexists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...
– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress itdone 2<>/dev/null
. doesbash
does that scripted? i thought it only effed that up in an-i
nteractive context. still,exists?
is as much as a filler name asfile
. but yeah, i hate quoting in redirects - if screws so much up.
– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i notedtest -e
.
– mikeserv
Aug 5 '18 at 7:22
|
show 3 more comments
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file likeexists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...
– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress itdone 2<>/dev/null
. doesbash
does that scripted? i thought it only effed that up in an-i
nteractive context. still,exists?
is as much as a filler name asfile
. but yeah, i hate quoting in redirects - if screws so much up.
– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i notedtest -e
.
– mikeserv
Aug 5 '18 at 7:22
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
Why the question mark? Note that the behaviour for globs in the target of redirections varies between shells.
– Stéphane Chazelas
Aug 5 '18 at 6:57
2
2
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Note that it has the side effect of opening the file, which for fifos for instance can be quite bad (worse with a symlink to /dev/watchdog on Linux for instance)
– Stéphane Chazelas
Aug 5 '18 at 6:58
Even in Bash, where this would look for a file like
exists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...– ilkkachu
Aug 5 '18 at 7:01
Even in Bash, where this would look for a file like
exists1
or such, it still prints a bunch of errors if/when a matching file isn't found. (Also it errors if there are multiple matches.) Any other shell I tested seems to give errors in any case...– ilkkachu
Aug 5 '18 at 7:01
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress it
done 2<>/dev/null
. does bash
does that scripted? i thought it only effed that up in an -i
nteractive context. still, exists?
is as much as a filler name as file
. but yeah, i hate quoting in redirects - if screws so much up.– mikeserv
Aug 5 '18 at 7:19
@ikkachu - yeah. that was kinda the point. if the error happens, the script reports. if stderr should be suppressed, suppress it
done 2<>/dev/null
. does bash
does that scripted? i thought it only effed that up in an -i
nteractive context. still, exists?
is as much as a filler name as file
. but yeah, i hate quoting in redirects - if screws so much up.– mikeserv
Aug 5 '18 at 7:19
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i noted
test -e
.– mikeserv
Aug 5 '18 at 7:22
@Stéphane - no reason, really. but yeah, fifos, unreadables... thats why i noted
test -e
.– mikeserv
Aug 5 '18 at 7:22
|
show 3 more comments
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%2f460595%2fhow-to-repeat-loop-n-times-in-bash%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
This is a very basic feature in shells. Did you even research it?
– Peschke
Aug 5 '18 at 7:03
Yes. But not getting expected output from my code. Also want to write as abbreviated as possible
– Rocky86
Aug 5 '18 at 7:05
1
@Peschke, well, they'd need at least what, three basic features (loops, conditionals, testing the file, breaking out of a loop). At least the question is quite clear as it is. Though it could contain a sketch of what Rocky tried, but then someone would rewrite it full in the answers anyway. ;)
– ilkkachu
Aug 5 '18 at 7:07