for loop in remotely executed bash script does not work
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have a remote bash script, which goes through files using a for loop:
#!/bin/bash
for f in *.pdf;
do
echo $f
done
When executed locally:
server$./test.sh
1508.01585.pdf
1605.07683.pdf
When executed through ssh from a remote client:
client$ ssh user@server 'bash -c ~/papers/test.sh'
*.pdf
I have tried using ssh -T, bash -s, and nothing seems to work.
Please help!
bash shell for-loop ssh
|
show 1 more comment
I have a remote bash script, which goes through files using a for loop:
#!/bin/bash
for f in *.pdf;
do
echo $f
done
When executed locally:
server$./test.sh
1508.01585.pdf
1605.07683.pdf
When executed through ssh from a remote client:
client$ ssh user@server 'bash -c ~/papers/test.sh'
*.pdf
I have tried using ssh -T, bash -s, and nothing seems to work.
Please help!
bash shell for-loop ssh
1
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
2
Maybe your current directory isn't what you think it is, and there are no*.pdffiles? Use a full name like/home/user/papers/*.pdfor whatever.
– cdarke
Jan 3 at 22:25
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
Or put acdcommand at the beginning of the script, to change to the directory that contains the files.
– Barmar
Jan 3 at 22:36
4
@cduguet See thenullglobbash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.
– Barmar
Jan 3 at 22:37
|
show 1 more comment
I have a remote bash script, which goes through files using a for loop:
#!/bin/bash
for f in *.pdf;
do
echo $f
done
When executed locally:
server$./test.sh
1508.01585.pdf
1605.07683.pdf
When executed through ssh from a remote client:
client$ ssh user@server 'bash -c ~/papers/test.sh'
*.pdf
I have tried using ssh -T, bash -s, and nothing seems to work.
Please help!
bash shell for-loop ssh
I have a remote bash script, which goes through files using a for loop:
#!/bin/bash
for f in *.pdf;
do
echo $f
done
When executed locally:
server$./test.sh
1508.01585.pdf
1605.07683.pdf
When executed through ssh from a remote client:
client$ ssh user@server 'bash -c ~/papers/test.sh'
*.pdf
I have tried using ssh -T, bash -s, and nothing seems to work.
Please help!
bash shell for-loop ssh
bash shell for-loop ssh
asked Jan 3 at 22:19
cduguetcduguet
318216
318216
1
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
2
Maybe your current directory isn't what you think it is, and there are no*.pdffiles? Use a full name like/home/user/papers/*.pdfor whatever.
– cdarke
Jan 3 at 22:25
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
Or put acdcommand at the beginning of the script, to change to the directory that contains the files.
– Barmar
Jan 3 at 22:36
4
@cduguet See thenullglobbash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.
– Barmar
Jan 3 at 22:37
|
show 1 more comment
1
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
2
Maybe your current directory isn't what you think it is, and there are no*.pdffiles? Use a full name like/home/user/papers/*.pdfor whatever.
– cdarke
Jan 3 at 22:25
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
Or put acdcommand at the beginning of the script, to change to the directory that contains the files.
– Barmar
Jan 3 at 22:36
4
@cduguet See thenullglobbash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.
– Barmar
Jan 3 at 22:37
1
1
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
2
2
Maybe your current directory isn't what you think it is, and there are no
*.pdf files? Use a full name like/home/user/papers/*.pdfor whatever.– cdarke
Jan 3 at 22:25
Maybe your current directory isn't what you think it is, and there are no
*.pdf files? Use a full name like/home/user/papers/*.pdfor whatever.– cdarke
Jan 3 at 22:25
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
Or put a
cd command at the beginning of the script, to change to the directory that contains the files.– Barmar
Jan 3 at 22:36
Or put a
cd command at the beginning of the script, to change to the directory that contains the files.– Barmar
Jan 3 at 22:36
4
4
@cduguet See the
nullglob bash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.– Barmar
Jan 3 at 22:37
@cduguet See the
nullglob bash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.– Barmar
Jan 3 at 22:37
|
show 1 more comment
0
active
oldest
votes
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%2f54030583%2ffor-loop-in-remotely-executed-bash-script-does-not-work%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
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%2f54030583%2ffor-loop-in-remotely-executed-bash-script-does-not-work%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
This means that there are no matching files in the remote user's home directory
– that other guy
Jan 3 at 22:25
2
Maybe your current directory isn't what you think it is, and there are no
*.pdffiles? Use a full name like/home/user/papers/*.pdfor whatever.– cdarke
Jan 3 at 22:25
That is it! I was just not expecting that the '*.pdf' return was because there were not files found, but rather that it was not looping. Thank you! Please post as answer to accept it.
– cduguet
Jan 3 at 22:36
Or put a
cdcommand at the beginning of the script, to change to the directory that contains the files.– Barmar
Jan 3 at 22:36
4
@cduguet See the
nullglobbash option. By default a glob returns itself if it doesn't match, if you set this option it returns an empty result.– Barmar
Jan 3 at 22:37