Reputation: 956
I have a bash script, which I use for configuration of different parameters in text files in my wireless access media server.
The script is located in one directory, and because I do all of configurations using putty, I have to either use the full path of the file or move to the directory that contains the file. I would like to avoid this.
Is it possible to save the bash script in or edit the bash script so that I can run it as command, for example as cp
or ls
commands?
Upvotes: 4
Views: 7375
Reputation: 1
Create a script as below
#!/bin/bash
Shell script to run
Export the script Path in to a variable:
export script="/path/to/script"
Type "Script" Command in the CLI to Get Shell script Executed
# script
If you want to make sure Script command should run in different sessions add below in .bashrc file
export Script="/path/to/script"
Upvotes: 0
Reputation: 5074
You can write a minimal wrapper in your home directory:
#!/bin/bash
exec /yourpath/yourfile.extension
And run your child script with this command ./NameOfYourScript
update: Unix hawks will probably say the first solution is a no-brainer because of the additional admin work it will load on you. Agreed, but on your requirements, my solution works :)
Otherwise, you can use an alias; you will have to amend your .bashrc
alias menu='bash /yourpath/menuScript.sh'
Upvotes: 2
Reputation: 51
Another way is to run it with:
/bin/bash /path/to/script
Then the file doesn't need to be executable.
Upvotes: 1
Reputation: 9416
The script needs to be executable, with:
chmod +x scriptname
(or similar).
Also, you want the script to be located in a directory that is in your PATH. To see your PATH use:
echo $PATH
Your choices are: to move (or link) the file into one of those directories, or to add the directory it is in to your PATH.
You can add a directory to your PATH with:
PATH=$PATH:/name/of/my/directory
and if you do this in the file $HOME/.bashrc
it will happen for each of your shell's automatically.
Upvotes: 12
Reputation: 494
You can place a softlink to the script under /usr/local/bin (Should be in $PATH like John said)
ln -s /path/to/script /usr/local/bin/scriptname
This should do the trick.
Upvotes: 5