Make bash-autocomplete recognize certain filetype for certain script
How can I make bash
recognize a certain filetype for a specific script
?
for example, I wrote a tiny script to compile a lilypond-file
and then automatically open the compiled pdf
:
#!/bin/bash
run() {
lilypond "$1"
name=$(basename "$1" .ly)
if [ -f "${name}.pdf" ]; then
xpdf -cont -remote LilyPreview "${name}.pdf" &
else
printf "\n file %s.pdf is not present..!\n\n" "$name"
fi
}
run "$@"
how can I make bash
know, to only suggest *.ly
files from the folder and ignore *.pdf
and *.midi
files with the same basename.
Update 2.3:
so when I want to run: script.sh myfile.ly
, then bashs autocomplete also suggests myfile.pdf
and myfile.midi
if they are present. I want bash to know that this script only wants to read *.ly
files (rather as a matter of convenience).
bash shell-script autocomplete
add a comment |
How can I make bash
recognize a certain filetype for a specific script
?
for example, I wrote a tiny script to compile a lilypond-file
and then automatically open the compiled pdf
:
#!/bin/bash
run() {
lilypond "$1"
name=$(basename "$1" .ly)
if [ -f "${name}.pdf" ]; then
xpdf -cont -remote LilyPreview "${name}.pdf" &
else
printf "\n file %s.pdf is not present..!\n\n" "$name"
fi
}
run "$@"
how can I make bash
know, to only suggest *.ly
files from the folder and ignore *.pdf
and *.midi
files with the same basename.
Update 2.3:
so when I want to run: script.sh myfile.ly
, then bashs autocomplete also suggests myfile.pdf
and myfile.midi
if they are present. I want bash to know that this script only wants to read *.ly
files (rather as a matter of convenience).
bash shell-script autocomplete
1
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
@nath If you runscript.sh myfile.ly
, why should the other filenames matter?
– Kusalananda
Dec 15 at 23:42
add a comment |
How can I make bash
recognize a certain filetype for a specific script
?
for example, I wrote a tiny script to compile a lilypond-file
and then automatically open the compiled pdf
:
#!/bin/bash
run() {
lilypond "$1"
name=$(basename "$1" .ly)
if [ -f "${name}.pdf" ]; then
xpdf -cont -remote LilyPreview "${name}.pdf" &
else
printf "\n file %s.pdf is not present..!\n\n" "$name"
fi
}
run "$@"
how can I make bash
know, to only suggest *.ly
files from the folder and ignore *.pdf
and *.midi
files with the same basename.
Update 2.3:
so when I want to run: script.sh myfile.ly
, then bashs autocomplete also suggests myfile.pdf
and myfile.midi
if they are present. I want bash to know that this script only wants to read *.ly
files (rather as a matter of convenience).
bash shell-script autocomplete
How can I make bash
recognize a certain filetype for a specific script
?
for example, I wrote a tiny script to compile a lilypond-file
and then automatically open the compiled pdf
:
#!/bin/bash
run() {
lilypond "$1"
name=$(basename "$1" .ly)
if [ -f "${name}.pdf" ]; then
xpdf -cont -remote LilyPreview "${name}.pdf" &
else
printf "\n file %s.pdf is not present..!\n\n" "$name"
fi
}
run "$@"
how can I make bash
know, to only suggest *.ly
files from the folder and ignore *.pdf
and *.midi
files with the same basename.
Update 2.3:
so when I want to run: script.sh myfile.ly
, then bashs autocomplete also suggests myfile.pdf
and myfile.midi
if they are present. I want bash to know that this script only wants to read *.ly
files (rather as a matter of convenience).
bash shell-script autocomplete
bash shell-script autocomplete
edited Dec 16 at 22:04
asked Dec 15 at 23:27
nath
858425
858425
1
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
@nath If you runscript.sh myfile.ly
, why should the other filenames matter?
– Kusalananda
Dec 15 at 23:42
add a comment |
1
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
@nath If you runscript.sh myfile.ly
, why should the other filenames matter?
– Kusalananda
Dec 15 at 23:42
1
1
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
@nath If you run
script.sh myfile.ly
, why should the other filenames matter?– Kusalananda
Dec 15 at 23:42
@nath If you run
script.sh myfile.ly
, why should the other filenames matter?– Kusalananda
Dec 15 at 23:42
add a comment |
1 Answer
1
active
oldest
votes
In your ~/.bashrc
, you could add something like this to enable autocompletion for your script.sh
:
complete -f -X '!*.ly' script.sh
The -f
option specifies filenames, and -X
is the filter pattern (note that the filter pattern removes values matching the pattern, so !
is used to negate the pattern such that all filenames except *.ly
are removed.
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
@nath yes, you can specify-o plusdirs
tocomplete
to add directories to the list.
– user234931
Dec 16 at 0:19
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%2f489235%2fmake-bash-autocomplete-recognize-certain-filetype-for-certain-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
In your ~/.bashrc
, you could add something like this to enable autocompletion for your script.sh
:
complete -f -X '!*.ly' script.sh
The -f
option specifies filenames, and -X
is the filter pattern (note that the filter pattern removes values matching the pattern, so !
is used to negate the pattern such that all filenames except *.ly
are removed.
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
@nath yes, you can specify-o plusdirs
tocomplete
to add directories to the list.
– user234931
Dec 16 at 0:19
add a comment |
In your ~/.bashrc
, you could add something like this to enable autocompletion for your script.sh
:
complete -f -X '!*.ly' script.sh
The -f
option specifies filenames, and -X
is the filter pattern (note that the filter pattern removes values matching the pattern, so !
is used to negate the pattern such that all filenames except *.ly
are removed.
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
@nath yes, you can specify-o plusdirs
tocomplete
to add directories to the list.
– user234931
Dec 16 at 0:19
add a comment |
In your ~/.bashrc
, you could add something like this to enable autocompletion for your script.sh
:
complete -f -X '!*.ly' script.sh
The -f
option specifies filenames, and -X
is the filter pattern (note that the filter pattern removes values matching the pattern, so !
is used to negate the pattern such that all filenames except *.ly
are removed.
In your ~/.bashrc
, you could add something like this to enable autocompletion for your script.sh
:
complete -f -X '!*.ly' script.sh
The -f
option specifies filenames, and -X
is the filter pattern (note that the filter pattern removes values matching the pattern, so !
is used to negate the pattern such that all filenames except *.ly
are removed.
answered Dec 16 at 0:01
user234931
33115
33115
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
@nath yes, you can specify-o plusdirs
tocomplete
to add directories to the list.
– user234931
Dec 16 at 0:19
add a comment |
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
@nath yes, you can specify-o plusdirs
tocomplete
to add directories to the list.
– user234931
Dec 16 at 0:19
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
nice, thanks. Would there be an option to allow folders to be displayed?
– nath
Dec 16 at 0:08
2
2
@nath yes, you can specify
-o plusdirs
to complete
to add directories to the list.– user234931
Dec 16 at 0:19
@nath yes, you can specify
-o plusdirs
to complete
to add directories to the list.– user234931
Dec 16 at 0:19
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f489235%2fmake-bash-autocomplete-recognize-certain-filetype-for-certain-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
What exactly do you mean by autocomplete? How do you want to call the script?
– WerKater
Dec 15 at 23:31
@nath If you run
script.sh myfile.ly
, why should the other filenames matter?– Kusalananda
Dec 15 at 23:42