Both $SHELL and $0 are environment variables that provide information related to the shell in Unix or Unix-like operating systems, but they differ in the following ways.
$SHELL
- This environment variable stores the path to the default shell for the logged-in user.
- Example:
$ echo $SHELL /bin/bash $ sh sh-3.2 $ echo $SHELL /bin/bash
In the above example, irrespective of the shell that you are currently using, $SHELL will give you the default shell path set for the active user.
$0
- This environment variable provides the name of the current shell when used on any interactive shell prompt. Note that if used within a script, it will give you the name of the script being executed.
- Example:
$ echo $0 bash $ zsh % echo $0 zsh
In the above example, you get the name of the current shell when $0 is echoed.
Facing issues? Have Questions? Post them here! I am happy to answer!
Author Info:
Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.
Follow him on: X
You can also reach out to him via e-mail: rakesh@code2care.org
More Posts related to Linux,
- Command to know the Available Memory on Linux System
- How to install curl on Alpine Linux
- How to backup a file in Linux/Unix
- Install Java Runtime Environment (Oracle or open JRE) on Ubuntu
- What is the Default Admin user and Password for Jenkins
- How to tar.gz a directory or folder Command
- Copy entire directory using Terminal Command [Linux, Mac, Bash]
- Fix: bash: ipconfig: command not found on Linux
- Command to check Last Login or Reboot History of Users and TTYs
- Linux: Create a New User and Password and Login Example
- ls command to list only directories
- bash: cls: command not found
- How to exit from nano command
- Installing and using unzip Command to unzip a zip file using Terminal
- What does apt-get update command does?
- ls command: sort files by name alphabetically A-Z or Z-A [Linux/Unix/macOS/Bash]
- How to remove or uninstall Java from Ubuntu using apt-get
- scp: ssh: connect to host xxxx port 22: Connection refused Error
- Sort ls command by last modified date and time
- Create Nested Directories using mkdir Command
- How to Exit a File in Terminal (Bash/Zsh)
- Command to know the installed Debian version?
- How to connect to SSH port other than default 22
- How to save a file in Nano Editor and Exit
- Install OpenSSL on Linux/Ubuntu
More Posts:
- How to get query string in JavaScript HTML location.search - JavaScript
- PowerShell: The term Connect-AzureAD is not recognized as the name of a cmdlet - Powershell
- How to Run PowerShell Script as a Windows Scheduler Task - Powershell
- Android Eclipse This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in - Android
- How to determine Gradle Version in Android Studio - Android-Studio
- Visual Studio Code available for Apple Mac ARM64 build for native M1 processor support - Microsoft
- How to restore closed file in Notepad++ - NotepadPlusPlus
- Unable to connect to the Internet : Google Chrome - Chrome