Command not found error in Bash script
So I have written a bashscript.sh
file to check if a directory project1_repo
is empty after cloning a project.
I have written four different functions to authenticate it but all the time I get command not found
error. I have checked multiple times if there is a syntax error
but in vain. Could someone please help me out? Thanks.
EDIT: Previously due to a typo project1_install_dir
was called colsim1_install_dir
but the edited version is correct.
#!/bin/bash
#path to install project1
function project1_install_dir() {
while true;
do
read -p "Enter FULL folder path where you want to install project1:" fullpath
echo "you have enterd $fullpath. Please press 'y' to confirm and 'n' to enter again"
read -p "Continue? (Y/N): " confirm
if [[ $confirm =~ ^([yY][eE][sS]|[yY])$ ]]; then
break
else
continue
fi
done
}
#clone project1
function clone_project1_repo() {
git clone example git .
}
# four functions to Check whether cloning is successful
# function 1
function success_of_cloning_of_project1_repo3() {
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
echo "dir not empty"
else
echo "dir empty"
fi
}
# function 2
function success_of_cloning_of_project_repo2() {
DIR="$fullpath/project1/project1_repo"
if [ -n "$(ls -A $DIR)" ]; then
echo "Take action $DIR is not Empty"
else
echo "$DIR is Empty"
fi
}
# function 3
function success_of_cloning_of_project_repo1() {
if [ -d $fullpath/project1/project1_repo ]; then
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
else
:
fi
}
# function 4
function success_of_cloning_of_project_repo() {
while true;
do
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
echo "cloning of project1_repo is successful"
break
else
echo "cloning of project1_repo is NOT successful."
continue
fi
done
}
#calling the functions
function main() {
project1_install_dir
success_of_cloning_of_project1_repo3
success_of_cloning_of_project1_repo2
success_of_cloning_of_project1_repo1
success_of_cloning_of_project1_repo
}
main
Terminal output:
jen@ex343:tdk/jen$ source bash_file_test.sh
Enter FULL folder path where you want to install project1:/tdk/jen
you have enterd /tdk/jen. Please press 'y' to confirm and 'n' to enter again
Continue? (Y/N): y
You have chosen yes
-bash: success_of_cloning_of_project1_repo3: command not found
-bash: success_of_cloning_of_project1_repo2: command not found
-bash: success_of_cloning_of_project1_repo1: command not found
-bash: success_of_cloning_of_project1_repo: command not found
command-line bash scripts
|
show 1 more comment
So I have written a bashscript.sh
file to check if a directory project1_repo
is empty after cloning a project.
I have written four different functions to authenticate it but all the time I get command not found
error. I have checked multiple times if there is a syntax error
but in vain. Could someone please help me out? Thanks.
EDIT: Previously due to a typo project1_install_dir
was called colsim1_install_dir
but the edited version is correct.
#!/bin/bash
#path to install project1
function project1_install_dir() {
while true;
do
read -p "Enter FULL folder path where you want to install project1:" fullpath
echo "you have enterd $fullpath. Please press 'y' to confirm and 'n' to enter again"
read -p "Continue? (Y/N): " confirm
if [[ $confirm =~ ^([yY][eE][sS]|[yY])$ ]]; then
break
else
continue
fi
done
}
#clone project1
function clone_project1_repo() {
git clone example git .
}
# four functions to Check whether cloning is successful
# function 1
function success_of_cloning_of_project1_repo3() {
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
echo "dir not empty"
else
echo "dir empty"
fi
}
# function 2
function success_of_cloning_of_project_repo2() {
DIR="$fullpath/project1/project1_repo"
if [ -n "$(ls -A $DIR)" ]; then
echo "Take action $DIR is not Empty"
else
echo "$DIR is Empty"
fi
}
# function 3
function success_of_cloning_of_project_repo1() {
if [ -d $fullpath/project1/project1_repo ]; then
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
else
:
fi
}
# function 4
function success_of_cloning_of_project_repo() {
while true;
do
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
echo "cloning of project1_repo is successful"
break
else
echo "cloning of project1_repo is NOT successful."
continue
fi
done
}
#calling the functions
function main() {
project1_install_dir
success_of_cloning_of_project1_repo3
success_of_cloning_of_project1_repo2
success_of_cloning_of_project1_repo1
success_of_cloning_of_project1_repo
}
main
Terminal output:
jen@ex343:tdk/jen$ source bash_file_test.sh
Enter FULL folder path where you want to install project1:/tdk/jen
you have enterd /tdk/jen. Please press 'y' to confirm and 'n' to enter again
Continue? (Y/N): y
You have chosen yes
-bash: success_of_cloning_of_project1_repo3: command not found
-bash: success_of_cloning_of_project1_repo2: command not found
-bash: success_of_cloning_of_project1_repo1: command not found
-bash: success_of_cloning_of_project1_repo: command not found
command-line bash scripts
1
Your terminal output and the script are inconsistent. Themain()
function callsproject1_install_dir
but there's no such function anywhere to be found in the script. But from your outputcolsim1_install_dir
seems to be called first. Isproject1_install_dir
another script installed somewhere ? As for the output-bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.
– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
No problems. So far I don't see any issue related to the error itself. You have a few places where variable$fullpath
should be quoted andread -r -p
should be used instead of justread -p
, but these shouldn't be the cause of the error.
– Sergiy Kolodyazhnyy
Mar 18 at 3:53
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doingcat -A ./scriptname.sh
, maybe it will show special characters besides just$
line ending
– Sergiy Kolodyazhnyy
Mar 18 at 3:59
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.cat -A ./scriptname.sh
didn't show any special characters than$
signs
– Jenny
Mar 18 at 4:04
|
show 1 more comment
So I have written a bashscript.sh
file to check if a directory project1_repo
is empty after cloning a project.
I have written four different functions to authenticate it but all the time I get command not found
error. I have checked multiple times if there is a syntax error
but in vain. Could someone please help me out? Thanks.
EDIT: Previously due to a typo project1_install_dir
was called colsim1_install_dir
but the edited version is correct.
#!/bin/bash
#path to install project1
function project1_install_dir() {
while true;
do
read -p "Enter FULL folder path where you want to install project1:" fullpath
echo "you have enterd $fullpath. Please press 'y' to confirm and 'n' to enter again"
read -p "Continue? (Y/N): " confirm
if [[ $confirm =~ ^([yY][eE][sS]|[yY])$ ]]; then
break
else
continue
fi
done
}
#clone project1
function clone_project1_repo() {
git clone example git .
}
# four functions to Check whether cloning is successful
# function 1
function success_of_cloning_of_project1_repo3() {
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
echo "dir not empty"
else
echo "dir empty"
fi
}
# function 2
function success_of_cloning_of_project_repo2() {
DIR="$fullpath/project1/project1_repo"
if [ -n "$(ls -A $DIR)" ]; then
echo "Take action $DIR is not Empty"
else
echo "$DIR is Empty"
fi
}
# function 3
function success_of_cloning_of_project_repo1() {
if [ -d $fullpath/project1/project1_repo ]; then
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
else
:
fi
}
# function 4
function success_of_cloning_of_project_repo() {
while true;
do
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
echo "cloning of project1_repo is successful"
break
else
echo "cloning of project1_repo is NOT successful."
continue
fi
done
}
#calling the functions
function main() {
project1_install_dir
success_of_cloning_of_project1_repo3
success_of_cloning_of_project1_repo2
success_of_cloning_of_project1_repo1
success_of_cloning_of_project1_repo
}
main
Terminal output:
jen@ex343:tdk/jen$ source bash_file_test.sh
Enter FULL folder path where you want to install project1:/tdk/jen
you have enterd /tdk/jen. Please press 'y' to confirm and 'n' to enter again
Continue? (Y/N): y
You have chosen yes
-bash: success_of_cloning_of_project1_repo3: command not found
-bash: success_of_cloning_of_project1_repo2: command not found
-bash: success_of_cloning_of_project1_repo1: command not found
-bash: success_of_cloning_of_project1_repo: command not found
command-line bash scripts
So I have written a bashscript.sh
file to check if a directory project1_repo
is empty after cloning a project.
I have written four different functions to authenticate it but all the time I get command not found
error. I have checked multiple times if there is a syntax error
but in vain. Could someone please help me out? Thanks.
EDIT: Previously due to a typo project1_install_dir
was called colsim1_install_dir
but the edited version is correct.
#!/bin/bash
#path to install project1
function project1_install_dir() {
while true;
do
read -p "Enter FULL folder path where you want to install project1:" fullpath
echo "you have enterd $fullpath. Please press 'y' to confirm and 'n' to enter again"
read -p "Continue? (Y/N): " confirm
if [[ $confirm =~ ^([yY][eE][sS]|[yY])$ ]]; then
break
else
continue
fi
done
}
#clone project1
function clone_project1_repo() {
git clone example git .
}
# four functions to Check whether cloning is successful
# function 1
function success_of_cloning_of_project1_repo3() {
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
echo "dir not empty"
else
echo "dir empty"
fi
}
# function 2
function success_of_cloning_of_project_repo2() {
DIR="$fullpath/project1/project1_repo"
if [ -n "$(ls -A $DIR)" ]; then
echo "Take action $DIR is not Empty"
else
echo "$DIR is Empty"
fi
}
# function 3
function success_of_cloning_of_project_repo1() {
if [ -d $fullpath/project1/project1_repo ]; then
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
else
:
fi
}
# function 4
function success_of_cloning_of_project_repo() {
while true;
do
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
echo "cloning of project1_repo is successful"
break
else
echo "cloning of project1_repo is NOT successful."
continue
fi
done
}
#calling the functions
function main() {
project1_install_dir
success_of_cloning_of_project1_repo3
success_of_cloning_of_project1_repo2
success_of_cloning_of_project1_repo1
success_of_cloning_of_project1_repo
}
main
Terminal output:
jen@ex343:tdk/jen$ source bash_file_test.sh
Enter FULL folder path where you want to install project1:/tdk/jen
you have enterd /tdk/jen. Please press 'y' to confirm and 'n' to enter again
Continue? (Y/N): y
You have chosen yes
-bash: success_of_cloning_of_project1_repo3: command not found
-bash: success_of_cloning_of_project1_repo2: command not found
-bash: success_of_cloning_of_project1_repo1: command not found
-bash: success_of_cloning_of_project1_repo: command not found
command-line bash scripts
command-line bash scripts
edited Mar 18 at 10:38
Jenny
asked Mar 18 at 3:17
JennyJenny
865
865
1
Your terminal output and the script are inconsistent. Themain()
function callsproject1_install_dir
but there's no such function anywhere to be found in the script. But from your outputcolsim1_install_dir
seems to be called first. Isproject1_install_dir
another script installed somewhere ? As for the output-bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.
– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
No problems. So far I don't see any issue related to the error itself. You have a few places where variable$fullpath
should be quoted andread -r -p
should be used instead of justread -p
, but these shouldn't be the cause of the error.
– Sergiy Kolodyazhnyy
Mar 18 at 3:53
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doingcat -A ./scriptname.sh
, maybe it will show special characters besides just$
line ending
– Sergiy Kolodyazhnyy
Mar 18 at 3:59
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.cat -A ./scriptname.sh
didn't show any special characters than$
signs
– Jenny
Mar 18 at 4:04
|
show 1 more comment
1
Your terminal output and the script are inconsistent. Themain()
function callsproject1_install_dir
but there's no such function anywhere to be found in the script. But from your outputcolsim1_install_dir
seems to be called first. Isproject1_install_dir
another script installed somewhere ? As for the output-bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.
– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
No problems. So far I don't see any issue related to the error itself. You have a few places where variable$fullpath
should be quoted andread -r -p
should be used instead of justread -p
, but these shouldn't be the cause of the error.
– Sergiy Kolodyazhnyy
Mar 18 at 3:53
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doingcat -A ./scriptname.sh
, maybe it will show special characters besides just$
line ending
– Sergiy Kolodyazhnyy
Mar 18 at 3:59
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.cat -A ./scriptname.sh
didn't show any special characters than$
signs
– Jenny
Mar 18 at 4:04
1
1
Your terminal output and the script are inconsistent. The
main()
function calls project1_install_dir
but there's no such function anywhere to be found in the script. But from your output colsim1_install_dir
seems to be called first. Is project1_install_dir
another script installed somewhere ? As for the output -bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Your terminal output and the script are inconsistent. The
main()
function calls project1_install_dir
but there's no such function anywhere to be found in the script. But from your output colsim1_install_dir
seems to be called first. Is project1_install_dir
another script installed somewhere ? As for the output -bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
No problems. So far I don't see any issue related to the error itself. You have a few places where variable
$fullpath
should be quoted and read -r -p
should be used instead of just read -p
, but these shouldn't be the cause of the error.– Sergiy Kolodyazhnyy
Mar 18 at 3:53
No problems. So far I don't see any issue related to the error itself. You have a few places where variable
$fullpath
should be quoted and read -r -p
should be used instead of just read -p
, but these shouldn't be the cause of the error.– Sergiy Kolodyazhnyy
Mar 18 at 3:53
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doing
cat -A ./scriptname.sh
, maybe it will show special characters besides just $
line ending– Sergiy Kolodyazhnyy
Mar 18 at 3:59
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doing
cat -A ./scriptname.sh
, maybe it will show special characters besides just $
line ending– Sergiy Kolodyazhnyy
Mar 18 at 3:59
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.
cat -A ./scriptname.sh
didn't show any special characters than $
signs– Jenny
Mar 18 at 4:04
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.
cat -A ./scriptname.sh
didn't show any special characters than $
signs– Jenny
Mar 18 at 4:04
|
show 1 more comment
1 Answer
1
active
oldest
votes
Pasting your code into https://www.shellcheck.net/ reports:
$ shellcheck myscript
Line 7:
read -p "Enter FULL folder path where you want to install project1:" fullpath
^-- SC2162: read without -r will mangle backslashes.
Line 9:
read -p "Continue? (Y/N): " confirm
^-- SC2162: read without -r will mangle backslashes.
Line 26:
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
^-- SC2086: Double quote to prevent globbing and word splitting.
^-- SC2162: read without -r will mangle backslashes.
Did you mean: (apply this, apply all SC2086)
if find "$fullpath"/project1/project1_repo -mindepth 1 | read; then
Line 36:
if [ -n "$(ls -A $DIR)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$DIR")" ]; then
Line 45:
if [ -d $fullpath/project1/project1_repo ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -d "$fullpath"/project1/project1_repo ]; then
Line 46:
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
[ -n "$(ls -A "$fullpath"/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
Line 56:
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$fullpath"/project1/project1_repo)" ]; then
You can follow the suggestion to use "$fullpath"
and any other recommendations in comments above. After fixing current errors ShellCheck reports, it may then report additional errors when you run it again.
sudo upvote
;-)
– Fabby
Mar 18 at 20:00
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "89"
};
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%2faskubuntu.com%2fquestions%2f1126511%2fcommand-not-found-error-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
Pasting your code into https://www.shellcheck.net/ reports:
$ shellcheck myscript
Line 7:
read -p "Enter FULL folder path where you want to install project1:" fullpath
^-- SC2162: read without -r will mangle backslashes.
Line 9:
read -p "Continue? (Y/N): " confirm
^-- SC2162: read without -r will mangle backslashes.
Line 26:
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
^-- SC2086: Double quote to prevent globbing and word splitting.
^-- SC2162: read without -r will mangle backslashes.
Did you mean: (apply this, apply all SC2086)
if find "$fullpath"/project1/project1_repo -mindepth 1 | read; then
Line 36:
if [ -n "$(ls -A $DIR)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$DIR")" ]; then
Line 45:
if [ -d $fullpath/project1/project1_repo ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -d "$fullpath"/project1/project1_repo ]; then
Line 46:
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
[ -n "$(ls -A "$fullpath"/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
Line 56:
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$fullpath"/project1/project1_repo)" ]; then
You can follow the suggestion to use "$fullpath"
and any other recommendations in comments above. After fixing current errors ShellCheck reports, it may then report additional errors when you run it again.
sudo upvote
;-)
– Fabby
Mar 18 at 20:00
add a comment |
Pasting your code into https://www.shellcheck.net/ reports:
$ shellcheck myscript
Line 7:
read -p "Enter FULL folder path where you want to install project1:" fullpath
^-- SC2162: read without -r will mangle backslashes.
Line 9:
read -p "Continue? (Y/N): " confirm
^-- SC2162: read without -r will mangle backslashes.
Line 26:
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
^-- SC2086: Double quote to prevent globbing and word splitting.
^-- SC2162: read without -r will mangle backslashes.
Did you mean: (apply this, apply all SC2086)
if find "$fullpath"/project1/project1_repo -mindepth 1 | read; then
Line 36:
if [ -n "$(ls -A $DIR)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$DIR")" ]; then
Line 45:
if [ -d $fullpath/project1/project1_repo ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -d "$fullpath"/project1/project1_repo ]; then
Line 46:
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
[ -n "$(ls -A "$fullpath"/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
Line 56:
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$fullpath"/project1/project1_repo)" ]; then
You can follow the suggestion to use "$fullpath"
and any other recommendations in comments above. After fixing current errors ShellCheck reports, it may then report additional errors when you run it again.
sudo upvote
;-)
– Fabby
Mar 18 at 20:00
add a comment |
Pasting your code into https://www.shellcheck.net/ reports:
$ shellcheck myscript
Line 7:
read -p "Enter FULL folder path where you want to install project1:" fullpath
^-- SC2162: read without -r will mangle backslashes.
Line 9:
read -p "Continue? (Y/N): " confirm
^-- SC2162: read without -r will mangle backslashes.
Line 26:
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
^-- SC2086: Double quote to prevent globbing and word splitting.
^-- SC2162: read without -r will mangle backslashes.
Did you mean: (apply this, apply all SC2086)
if find "$fullpath"/project1/project1_repo -mindepth 1 | read; then
Line 36:
if [ -n "$(ls -A $DIR)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$DIR")" ]; then
Line 45:
if [ -d $fullpath/project1/project1_repo ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -d "$fullpath"/project1/project1_repo ]; then
Line 46:
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
[ -n "$(ls -A "$fullpath"/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
Line 56:
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$fullpath"/project1/project1_repo)" ]; then
You can follow the suggestion to use "$fullpath"
and any other recommendations in comments above. After fixing current errors ShellCheck reports, it may then report additional errors when you run it again.
Pasting your code into https://www.shellcheck.net/ reports:
$ shellcheck myscript
Line 7:
read -p "Enter FULL folder path where you want to install project1:" fullpath
^-- SC2162: read without -r will mangle backslashes.
Line 9:
read -p "Continue? (Y/N): " confirm
^-- SC2162: read without -r will mangle backslashes.
Line 26:
if find $fullpath/project1/project1_repo -mindepth 1 | read; then
^-- SC2086: Double quote to prevent globbing and word splitting.
^-- SC2162: read without -r will mangle backslashes.
Did you mean: (apply this, apply all SC2086)
if find "$fullpath"/project1/project1_repo -mindepth 1 | read; then
Line 36:
if [ -n "$(ls -A $DIR)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$DIR")" ]; then
Line 45:
if [ -d $fullpath/project1/project1_repo ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -d "$fullpath"/project1/project1_repo ]; then
Line 46:
[ -n "$(ls -A $fullpath/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
[ -n "$(ls -A "$fullpath"/project1/project1_repo)" ] && echo "Not Empty" || echo "Empty"
Line 56:
if [ -n "$(ls -A $fullpath/project1/project1_repo)" ]; then
^-- SC2086: Double quote to prevent globbing and word splitting.
Did you mean: (apply this, apply all SC2086)
if [ -n "$(ls -A "$fullpath"/project1/project1_repo)" ]; then
You can follow the suggestion to use "$fullpath"
and any other recommendations in comments above. After fixing current errors ShellCheck reports, it may then report additional errors when you run it again.
edited Mar 19 at 7:34
Melebius
5,09652040
5,09652040
answered Mar 18 at 10:52
WinEunuuchs2UnixWinEunuuchs2Unix
47.2k1190183
47.2k1190183
sudo upvote
;-)
– Fabby
Mar 18 at 20:00
add a comment |
sudo upvote
;-)
– Fabby
Mar 18 at 20:00
sudo upvote
;-)– Fabby
Mar 18 at 20:00
sudo upvote
;-)– Fabby
Mar 18 at 20:00
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- 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%2faskubuntu.com%2fquestions%2f1126511%2fcommand-not-found-error-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
Your terminal output and the script are inconsistent. The
main()
function callsproject1_install_dir
but there's no such function anywhere to be found in the script. But from your outputcolsim1_install_dir
seems to be called first. Isproject1_install_dir
another script installed somewhere ? As for the output-bash: success_of_cloning_of_colsim1_utilities_repo3:
it seems like function name got mangled with other function name.– Sergiy Kolodyazhnyy
Mar 18 at 3:35
Sorry. There was a typo..both should be project1_install_dir. I have edited. sorry again.
– Jenny
Mar 18 at 3:40
No problems. So far I don't see any issue related to the error itself. You have a few places where variable
$fullpath
should be quoted andread -r -p
should be used instead of justread -p
, but these shouldn't be the cause of the error.– Sergiy Kolodyazhnyy
Mar 18 at 3:53
Was this script ever on windows or anything that could have potentially inserted newline endings specific to DOS ? Do you use a non-English keyboard that could have entered different types of space characters ? I know with Chinese inputs there is a wide space character, which is different from ASCII space. Try doing
cat -A ./scriptname.sh
, maybe it will show special characters besides just$
line ending– Sergiy Kolodyazhnyy
Mar 18 at 3:59
No, it has never been on Windows. Yes I have a German keyboard. But I don't think I've ever used any German characters.
cat -A ./scriptname.sh
didn't show any special characters than$
signs– Jenny
Mar 18 at 4:04