eolas/zk/Conditionals_in_Bash.md

54 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2023-02-21 07:34:13 +00:00
---
tags:
- shell
---
# Conditionals in Bash
## If statements
- Conditional blocks start with `if` and end with the inversion `fi` (this is a
common syntactic pattern in bash)
- The conditional expression must be placed in square brackets with spaces
either side. The spaces matter: if you omit them, the code will not run
2023-02-21 07:34:13 +00:00
- We designate the code to run when the conditional is met with `then`
- We can incorporate else if logic with `elif`
## Basic example
```bash
if [ -e $var ]; then
# Do something
else
# Do something else
fi
```
## If, else
```bash
if [ "$myMove" -eq "$opponentMove" ]; then
(( totalScore+=myMove+3 ))
elif [ $absDiff -eq 2 ] && [ "$myMove" -gt "$opponentMove" ]; then
(( totalScore+=myMove))
elif [ $absDiff -eq 2 ] && [ "$opponentMove" -gt "$myMove" ]; then
(( totalScore+=myMove+6))
elif [ $absDiff -eq 1 ] && [ "$opponentMove" -gt "$myMove" ]; then
(( totalScore+=myMove))
elif [ $absDiff -eq 1 ] && [ "$myMove" -gt "$opponentMove" ]; then
(( totalScore+=myMove+6))
fi
```
## Nested conditionals
```bash
if [[ "$line" =~ ^$ ]]; then
if [[ "$runningTotal" -gt "$highest" ]]; then
(( highest=runningTotal ))
fi
# Reset running sum
(( runningTotal=0 ))
fi
```