<aside> 💡 The key differences between the two are as follows: A commit is part of the public git history; a stash is stored locally. A commit creates a new save point on a branch; a stash reverts to a previous save point. ... A commit is a public record of file changes; a stash is local.
</aside>
Two objects—a source (parent or owning) object and a target (child or owned) object—are related by aggregation if there is a strict one-to-one relationship between them, and all the attributes of the target object can be retrieved from the same data source representation as the source object. This means that if the source object exists, then the target object must also exist, and if the source object is destroyed, then the target object is also destroyed.
In this case, the descriptors for the source and target objects must be designated to reflect this relationship.
Parameter expansion also known as variable expansion is the replacement of syntactic structures of the form $parameter and ${parameter} with the value of the parameter, possibly processed by the application of modifiers.
Command substitution is the name of the feature of the shell language that allows you to execute a command and have the output of that command replace (substitute) the text of the command. There is no other feature of the shell language that allows you to do that.
The core part of any Linux shell is the Command Line Interpreter. This part serves two purposes: it reads and parses user commands, then it executes the parsed commands. You can think of the CLI itself as having two parts: a parser (or front-end), and an executor (or back-end).
Another part of the shell is the user interface, which usually operates when the shell is in the interactive mode, for example, when you are entering commands at the shell prompt. Here the shell runs in a loop, which we know as the Read-Eval-Print-Loop, or REPL.
As the loop's name indicates, the shell reads input, parses and executes it, then loops to read the next command, and so on until you enter a command such as exit , shutdown, or reboot.