Hello Worldsuggest change
The Bash shell is commonly used interactively: It lets you enter and edit commands, then executes them when you press the Return key. Many Unix-based and Unix-like operating systems use Bash as their default shell (notably Linux and macOS). The terminal automatically enters an interactive Bash shell process on startup.
Hello World by typing the following:
echo "Hello World" #> Hello World # Output Example
- You can change the shell by just typing the name of the shell in terminal. For example:
echois a Bash builtin command that writes the arguments it receives to the standard output. It appends a newline to the output, by default.
The Bash shell can also be run non-interactively from a script, making the shell require no human interaction. Interactive behavior and scripted behavior should be identical – an important design consideration of Unix V7 Bourne shell and transitively Bash. Therefore anything that can be done at the command line can be put in a script file for reuse.
Follow these steps to create a
Hello World script:
- Create a new file called
- Make the script executable by running
- Add this code:
#!/bin/bash echo "Hello World"
Line 1: The first line of the script must start with the character sequence
#!, referred to as shebang1. The shebang instructs the operating system to run
/bin/bash, the Bash shell, passing it the script’s path as an argument.
E.g. `/bin/bash hello-world.sh`
Line 2: Uses the
echo command to write
Hello World to the standard output.
- Execute the
hello-world.shscript from the command line using one of the following:
./hello-world.sh– most commonly used, and recommended
bash hello-world.sh– assuming
/binis in your
For real production use, you would omit the
.sh extension (which is misleading anyway, since this is a Bash script, not a
sh script) and perhaps move the file to a directory within your
PATH so that it is available to you regardless of your current working directory, just like a system command such as
Common mistakes include:
- Forgetting to apply execute permission on the file, i.e.,
chmod +x hello-world.sh, resulting in the output of
./hello-world.sh: Permission denied.
- Editing the script on Windows, which produces incorrect line ending characters that Bash cannot handle.
A common symptom is `: command not found` where the carriage return has forced the cursor to the beginning of line, overwriting the text before the colon in the error message. The script can be fixed using the `dos2unix` program. An example use: `dos2unix hello-world.sh` *`dos2unix` edits the file inline.*
sh ./hello-world.sh, not realizing that
share distinct shells with distinct features (though since Bash is backwards-compatible, the opposite mistake is harmless).
Anyway, simply relying on the script's shebang line is vastly preferable to explicitly writing `bash` or `sh` (or `python` or `perl` or `awk` or `ruby` or...) before each script's file name. A common shebang line to use in order to make your script more portable is to use `#!/usr/bin/env bash` instead of hard-coding a path to Bash. That way, `/usr/bin/env` has to exist, but beyond that point, `bash` just needs to be on your `PATH`. On many systems, `/bin/bash` doesn't exist, and you should use `/usr/local/bin/bash` or some other absolute path; this change avoids having to figure out the details of that.
1 Also referred to as sha-bang, hashbang, pound-bang, hash-pling.