53 lines
743 B
Plaintext
53 lines
743 B
Plaintext
|
# Obsolete Syntax
|
||
|
|
||
|
## Shebang
|
||
|
|
||
|
Use `#!/usr/bin/env bash` instead of `#!/bin/bash`.
|
||
|
|
||
|
- The former searches the user's `PATH` to find the `bash` binary.
|
||
|
- The latter assumes it is always installed to `/bin/` which can cause issues.
|
||
|
|
||
|
```shell
|
||
|
# Right:
|
||
|
|
||
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Wrong:
|
||
|
|
||
|
#!/bin/bash
|
||
|
```
|
||
|
|
||
|
## Command Substitution
|
||
|
|
||
|
Use `$()` instead of `` ` ` ``.
|
||
|
|
||
|
```shell
|
||
|
# Right.
|
||
|
var="$(command)"
|
||
|
|
||
|
# Wrong.
|
||
|
var=`command`
|
||
|
|
||
|
# $() can easily be nested whereas `` cannot.
|
||
|
var="$(command "$(command)")"
|
||
|
```
|
||
|
|
||
|
## Function Declaration
|
||
|
|
||
|
Don't use the `function` keyword, it reduces compatibility with older versions of `bash`.
|
||
|
|
||
|
```shell
|
||
|
# Right.
|
||
|
do_something() {
|
||
|
# ...
|
||
|
}
|
||
|
|
||
|
# Wrong.
|
||
|
function do_something() {
|
||
|
# ...
|
||
|
}
|
||
|
```
|
||
|
|
||
|
<!-- CHAPTER END -->
|
||
|
|