bash: [: too many arguments?
Solution 1:
The main error in your script is that the [
command, equivalent to test
command, is used to test conditions, like string comparison, existence of files, and so on.
To test the exit status of processes you have to use if
without [
, so your script could be
if mkdir "$appdir" && cd "$appdir"; then
echo "Success"
else
echo "Failed to create and switch directory"
fi
This is explained in Bash Pitfalls: 9. if [grep foo myfile.
I suggest you go through GrayCat Bash Guide to understand bash.