Once considered th
Ships were lost du
We've recently dis
Once considered th
Joe's Bar and Gril
That turned dark q
Release me. Now. O
That turned dark q
That turned dark q
Chapter 1. Our st

Quitetly, Quiggly
Stop dancing like
Chapter 1. Once
Quitetly, Quiggly
FTL is not possibl
Chris! I told you
But first, you and
FTL is not possibl
Chapter 1. Once
FTL is not possibl
Stop dancing like that. it looks like you're performing some mating rituals of your own! -- A: The first thing you should do is make sure you are in the root of your project. Make sure you don't accidentally execute a script from an off-root location, especially if you are running your script via a cronjob or something similar. Then you should cd into the project root: cd /path/to/project/root I cannot verify this to be true for all environments, but when I do something like cd ~ that changes to my home directory, which will be different if you are root or not. So, I always have to cd - to return to the root project directory before attempting to cd to a sub directory in that directory. The reason this is important is because if you are running from a script somewhere else that is not the project root, you may find yourself in a sub directory in your project root. So, the first thing to try is to be sure the working directory is in the project root, if that doesn't work you can try the cd - I also want to mention you could use something like this in your crontab to start the script. Just because it's in your crontab doesn't mean your cronjob runs as root. However if you are running a cronjob to start the script from an off root directory, it's pretty likely that it is a crontab user account that has little to no privileges (or privilege at all), and that the root/project root directory is not a default executable location, so you will need the full path. The following is good for both a cronjob and the crontab user running the script. It has to be executed from the project root. cd /path/to/project/root ./start_script.sh I don't know the directory you are cd'ing from, so I'll just use the path, /etc/path/to/project/root If you aren't running a crontab and you aren't in the project root, try the following. cd /path/to/project/root ../start_script.sh If you aren't in a working directory that is higher than the project root (e.g. /path/to/project is the project root, and /path/to/project/scripts is above that and you want to cd into /path/to/project/scripts), use cd /path/to/project/root cd ../.. cd /path/to/project/scripts I know this is what I use a lot. It seems simple enough to not need to specify the whole path all the time. I hope it helps. Happy coding! A: You have to be in the project directory (or the parent directory). If you are in a sub directory, cd .. cd project_dir Else, you can use one level up cd project_dir/parent_dir A: What you have to do depends on whether you want the script to be relative to the directory your shell script is in, or you want the shell script to be relative to your working directory. If you want the script to be relative to the directory your shell script is in, you can use either cd /path/to/project/root . start_script.sh or you can define your working directory in the shell script itself. If you want to make the script relative to your working directory, you can do something like this: cd /path/to/project cd .. cd /path/to/project/scripts /path/to/project/scripts/start_script.sh or this cd /path/to/project/root cd .. cd /path/to/project/scripts cd /path/to/project/scripts/start_script.sh Note that you have to cd up twice, not just once! That is because cd .. moves to the parent directory (so, the directory one level up) in the current working directory. Since the current working directory is /path/to/project/root, and we want to change to /path/to/project, we need to do cd ../.. to change to the parent directory of /path/to/project (i.e. /path/to/project/root). If you want the script to be relative to /path/to/project/root, you can do this: cd /path/to/project/root cd ../.. cd /path/to/project/scripts /path/to/project/scripts/start_script.sh or this: cd /path/to/project/root cd ../.. cd /path/to/project/scripts ./start_script.sh (Notice, here, we don't need to cd up twice). Note that I assume you want to start the script in /path/to/project/root/scripts, rather than in your home directory. If that's the case, the command would look like this: cd /path/to/project/root cd .. cd /path/to/project/scripts cd scripts scripts/start_script.sh or this: cd /path/to/project/root cd .. cd /path/to/project/scripts . start_script.sh or if you want the script to be relative to /path/to/project/root/scripts: cd /path/to/project/root cd .. cd /path/to/project/scripts ./start_script.sh or this: cd /path/to/project/root cd .. cd /path/to/project/scripts . start_script.sh You also have some options about the start_script.sh script that would be helpful for someone who knows more about UNIX: The shebang line in the script (#!/bin/bash) should be changed to either #!/bin/bash or #! /path/to/project/root/scripts/bash, depending on whether you want the script to be executable by anyone or just you. It should be the second, I think (to make it not executable by anyone else), but if the script is supposed to be executable by anyone, then you might want to change that, too. If your system supports UNIX groups, then you could do something like: chmod -r 777 /path/to/project/root/scripts/start_script.sh chgrp -R root /path/to/project/root/scripts/start_script.sh chmod -r g+s /path/to/project/root/scripts/start_script.sh which would grant you, as the owner of the script, access to all the group members of your group.