Loop in macOS not working
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
I need to execute the following shell script in my macOS terminal.
The loop never executes more than its first iteration.
function execute_function() {
# Launch job
number_of_jobs=$1
echo "Launching ${number_of_jobs} jobs"
for i in {1..$1}; do
job_id=`head /dev/urandom | tr -dc A-Z0-9 | head -c 6 ; echo ''`
echo "Launching Job: $job_id"
echo $i
done
}
When I run it, I always get:
execute_function 10
Launching 10 jobs
Launching Job: XX9BWC
{1..10}
The same happens if I replace: $1 with $number_of_jobs or "${number_of_jobs}"
shell-script shell osx brace-expansion
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I need to execute the following shell script in my macOS terminal.
The loop never executes more than its first iteration.
function execute_function() {
# Launch job
number_of_jobs=$1
echo "Launching ${number_of_jobs} jobs"
for i in {1..$1}; do
job_id=`head /dev/urandom | tr -dc A-Z0-9 | head -c 6 ; echo ''`
echo "Launching Job: $job_id"
echo $i
done
}
When I run it, I always get:
execute_function 10
Launching 10 jobs
Launching Job: XX9BWC
{1..10}
The same happens if I replace: $1 with $number_of_jobs or "${number_of_jobs}"
shell-script shell osx brace-expansion
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
I need to execute the following shell script in my macOS terminal.
The loop never executes more than its first iteration.
function execute_function() {
# Launch job
number_of_jobs=$1
echo "Launching ${number_of_jobs} jobs"
for i in {1..$1}; do
job_id=`head /dev/urandom | tr -dc A-Z0-9 | head -c 6 ; echo ''`
echo "Launching Job: $job_id"
echo $i
done
}
When I run it, I always get:
execute_function 10
Launching 10 jobs
Launching Job: XX9BWC
{1..10}
The same happens if I replace: $1 with $number_of_jobs or "${number_of_jobs}"
shell-script shell osx brace-expansion
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
I need to execute the following shell script in my macOS terminal.
The loop never executes more than its first iteration.
function execute_function() {
# Launch job
number_of_jobs=$1
echo "Launching ${number_of_jobs} jobs"
for i in {1..$1}; do
job_id=`head /dev/urandom | tr -dc A-Z0-9 | head -c 6 ; echo ''`
echo "Launching Job: $job_id"
echo $i
done
}
When I run it, I always get:
execute_function 10
Launching 10 jobs
Launching Job: XX9BWC
{1..10}
The same happens if I replace: $1 with $number_of_jobs or "${number_of_jobs}"
shell-script shell osx brace-expansion
shell-script shell osx brace-expansion
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
edited Apr 2 at 8:02
Kusalananda♦
140k17261435
140k17261435
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked Apr 2 at 4:55
spicyramenspicyramen
1334
1334
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
spicyramen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
The problem here is variable in braces expansion.
Try rewriting it to
for ((i=1;i<=$1;i++))
do
#your code here
done
That worked perfectly
– spicyramen
Apr 2 at 5:22
add a comment |
Your script is written for zsh but you are executing it with bash.
bash does not support using variables as ranges in brace-expansions.
To resolve this, simply arrange for the script or function be executed in a zsh shell (especially if the script is longer than what you are showing and is using other zsh features). This shell is installed by default on macOS as /bin/zsh. You may add #!/bin/zsh as the first line in the script to have it execute with zsh by default.
See also:
- Listing numbered files using wildcard sequence with predefined range
- How can I use $variable in a shell brace expansion of a sequence?
- Does the shebang determine the shell which runs the script?
1
include#!/bin/zshas first line. (you may need to check the path.
– ctrl-alt-delor
Apr 2 at 7:57
what about#!/usr/bin/env zsh?
– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location ofzshis/bin/zshon macOS. Obviously, you may want to useenvif you need to use a 3rd-party installation ofzsh. However, this is not the essence of this particular question.
– Kusalananda♦
Apr 2 at 8:50
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
});
}
});
spicyramen is a new contributor. Be nice, and check out our Code of Conduct.
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%2f509995%2floop-in-macos-not-working%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
The problem here is variable in braces expansion.
Try rewriting it to
for ((i=1;i<=$1;i++))
do
#your code here
done
That worked perfectly
– spicyramen
Apr 2 at 5:22
add a comment |
The problem here is variable in braces expansion.
Try rewriting it to
for ((i=1;i<=$1;i++))
do
#your code here
done
That worked perfectly
– spicyramen
Apr 2 at 5:22
add a comment |
The problem here is variable in braces expansion.
Try rewriting it to
for ((i=1;i<=$1;i++))
do
#your code here
done
The problem here is variable in braces expansion.
Try rewriting it to
for ((i=1;i<=$1;i++))
do
#your code here
done
edited Apr 2 at 6:59
answered Apr 2 at 5:08
Jakub JindraJakub Jindra
608514
608514
That worked perfectly
– spicyramen
Apr 2 at 5:22
add a comment |
That worked perfectly
– spicyramen
Apr 2 at 5:22
That worked perfectly
– spicyramen
Apr 2 at 5:22
That worked perfectly
– spicyramen
Apr 2 at 5:22
add a comment |
Your script is written for zsh but you are executing it with bash.
bash does not support using variables as ranges in brace-expansions.
To resolve this, simply arrange for the script or function be executed in a zsh shell (especially if the script is longer than what you are showing and is using other zsh features). This shell is installed by default on macOS as /bin/zsh. You may add #!/bin/zsh as the first line in the script to have it execute with zsh by default.
See also:
- Listing numbered files using wildcard sequence with predefined range
- How can I use $variable in a shell brace expansion of a sequence?
- Does the shebang determine the shell which runs the script?
1
include#!/bin/zshas first line. (you may need to check the path.
– ctrl-alt-delor
Apr 2 at 7:57
what about#!/usr/bin/env zsh?
– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location ofzshis/bin/zshon macOS. Obviously, you may want to useenvif you need to use a 3rd-party installation ofzsh. However, this is not the essence of this particular question.
– Kusalananda♦
Apr 2 at 8:50
add a comment |
Your script is written for zsh but you are executing it with bash.
bash does not support using variables as ranges in brace-expansions.
To resolve this, simply arrange for the script or function be executed in a zsh shell (especially if the script is longer than what you are showing and is using other zsh features). This shell is installed by default on macOS as /bin/zsh. You may add #!/bin/zsh as the first line in the script to have it execute with zsh by default.
See also:
- Listing numbered files using wildcard sequence with predefined range
- How can I use $variable in a shell brace expansion of a sequence?
- Does the shebang determine the shell which runs the script?
1
include#!/bin/zshas first line. (you may need to check the path.
– ctrl-alt-delor
Apr 2 at 7:57
what about#!/usr/bin/env zsh?
– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location ofzshis/bin/zshon macOS. Obviously, you may want to useenvif you need to use a 3rd-party installation ofzsh. However, this is not the essence of this particular question.
– Kusalananda♦
Apr 2 at 8:50
add a comment |
Your script is written for zsh but you are executing it with bash.
bash does not support using variables as ranges in brace-expansions.
To resolve this, simply arrange for the script or function be executed in a zsh shell (especially if the script is longer than what you are showing and is using other zsh features). This shell is installed by default on macOS as /bin/zsh. You may add #!/bin/zsh as the first line in the script to have it execute with zsh by default.
See also:
- Listing numbered files using wildcard sequence with predefined range
- How can I use $variable in a shell brace expansion of a sequence?
- Does the shebang determine the shell which runs the script?
Your script is written for zsh but you are executing it with bash.
bash does not support using variables as ranges in brace-expansions.
To resolve this, simply arrange for the script or function be executed in a zsh shell (especially if the script is longer than what you are showing and is using other zsh features). This shell is installed by default on macOS as /bin/zsh. You may add #!/bin/zsh as the first line in the script to have it execute with zsh by default.
See also:
- Listing numbered files using wildcard sequence with predefined range
- How can I use $variable in a shell brace expansion of a sequence?
- Does the shebang determine the shell which runs the script?
edited Apr 2 at 7:59
answered Apr 2 at 5:28
Kusalananda♦Kusalananda
140k17261435
140k17261435
1
include#!/bin/zshas first line. (you may need to check the path.
– ctrl-alt-delor
Apr 2 at 7:57
what about#!/usr/bin/env zsh?
– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location ofzshis/bin/zshon macOS. Obviously, you may want to useenvif you need to use a 3rd-party installation ofzsh. However, this is not the essence of this particular question.
– Kusalananda♦
Apr 2 at 8:50
add a comment |
1
include#!/bin/zshas first line. (you may need to check the path.
– ctrl-alt-delor
Apr 2 at 7:57
what about#!/usr/bin/env zsh?
– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location ofzshis/bin/zshon macOS. Obviously, you may want to useenvif you need to use a 3rd-party installation ofzsh. However, this is not the essence of this particular question.
– Kusalananda♦
Apr 2 at 8:50
1
1
include
#!/bin/zsh as first line. (you may need to check the path.– ctrl-alt-delor
Apr 2 at 7:57
include
#!/bin/zsh as first line. (you may need to check the path.– ctrl-alt-delor
Apr 2 at 7:57
what about
#!/usr/bin/env zsh?– Jakub Jindra
Apr 2 at 8:46
what about
#!/usr/bin/env zsh?– Jakub Jindra
Apr 2 at 8:46
@JakubJindra That would work to, but the default location of
zsh is /bin/zsh on macOS. Obviously, you may want to use env if you need to use a 3rd-party installation of zsh. However, this is not the essence of this particular question.– Kusalananda♦
Apr 2 at 8:50
@JakubJindra That would work to, but the default location of
zsh is /bin/zsh on macOS. Obviously, you may want to use env if you need to use a 3rd-party installation of zsh. However, this is not the essence of this particular question.– Kusalananda♦
Apr 2 at 8:50
add a comment |
spicyramen is a new contributor. Be nice, and check out our Code of Conduct.
spicyramen is a new contributor. Be nice, and check out our Code of Conduct.
spicyramen is a new contributor. Be nice, and check out our Code of Conduct.
spicyramen is a new contributor. Be nice, and check out our Code of Conduct.
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%2f509995%2floop-in-macos-not-working%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