9

I'm new to Ubuntu and currently on it because of assignment. I would like to ask few questions:

  1. How do I make new command to run a shell script? For example, when you type passwd on terminal it runs the executable file on /usr/bin/passwd. How do I make it the same like my file?

  2. How do I change my shell script into a executable file like the passwd?

David Foerster
  • 36,264
  • 56
  • 94
  • 147
Unknown
  • 195
  • 3
  • 4
  • 9

1 Answers1

13

Your script should look like:

#!/bin/bash

passwd

Save it in a file, let say password.sh or simple password, then make it executable using next commands in terminal:

cd /path/to/password.sh  #or cd /path/to/password
chmod +x password.sh     #or chmod +x password

To run it from terminal, just use the following command:

./password.sh            #or ./password

or

/path/to/password.sh     #or /path/to/password

To run it only using:

password.sh              #or password

you must to add the path of the script to the PATH. See How to add a directory to the PATH? in this sense.

Radu Rădeanu
  • 169,590
  • I want to run it without the "./" part. Is it possible? – Unknown Aug 19 '13 at 19:15
  • I'm sorry, I forgotten another criteria which is I want to run with out the ".sh" also. That means I want to run my file with just the file name on terminal. For example: passwd – Unknown Aug 19 '13 at 19:24
  • @Guest Ok, save the script eith the name password. There is no problem by doing this. – Radu Rădeanu Aug 19 '13 at 19:25
  • Cool. Will try it out soon. Thanks alot for your help. – Unknown Aug 19 '13 at 19:27
  • You should change the answer accordingly. One should not put extensions on commands. Especially not .sh when it's not even an sh script. – geirha Aug 19 '13 at 21:04
  • @geirha Is this a reason to vote down? Go and inform yourself: http://filext.com/file-extension/SH or http://file.org/extension/sh# or http://www.google.ro/#fp=5c5fea082d49075d&q=.sh+file+extension – Radu Rădeanu Aug 19 '13 at 21:26
  • Yes, it's a bad habit to teach. http://www.talisman.org/~erlkonig/documents/commandname-extensions-considered-harmful – geirha Aug 20 '13 at 05:53
  • @geirha All I see here is a chatter which do not prove anything for me. Where it says there that the files with .sh extension do not denotes shell scripts? – Radu Rădeanu Aug 20 '13 at 06:21
  • @RaduRădeanu, that's irrelevant. It's a bad idea to teach new scripters to put extensions on the commands they write. What language a command is written in is irrelevant. Do you care that ls is a compiled binary? would you care if it was a perl script? Do you care that gunzip is a bash script? And the links, with lovely animated ads, you point to even disagree with each other what .sh mean. One says it's a shell script, which is a very vague description (is .sh extension valid for csh scripts too?). The other says it's a self-extracting archive. – geirha Aug 20 '13 at 13:01
  • 1
    @geirha Wake up! A file with .sh extension is primarily associated with a script designed to run at an UNIX/LINUX command prompt and finish. There is no problem if other kind of files have the same extension or if you don't want to use an extension for this type of file. – Radu Rădeanu Aug 20 '13 at 17:43