Есть несколько менее известных bash расширений переменных:
+----------------------------------------------------------+----------------+
| description | expression |
+----------------------------------------------------------+----------------+
| Remove everything **after** the **last** '7' | ${var%7*} |
| Remove everything **after** the **first** '7' | ${var%%7*} |
| Remove everything **before** the **first** '7' | ${var#*7} |
| Remove everything **before** the **last** '7' | ${var##*7} |
| First char upper case | ${var^} |
| All upper case | ${var^^} |
| First char lower case | ${var,} |
| All lower case | ${var,,} |
| Show how variable was set | ${var@A} |
| ?? something cool ?? | ${var@E} |
| Print variable as though it were the prompt variable PS1 | ${var@P} |
| ?? something cool ?? | ${var@Q} |
+----------------------------------------------------------+----------------+
Я изо всех сил пытался найти источник, документирующий все эти уловки. Пока что лучшее, что я нашел, - это шпаргалка. Но даже на этой странице отсутствуют некоторые из этих правил расширения. Чтобы написать хороший код bash и сделать этот код переносимым, я ищу несколько вещей:
- Каковы все уловки с расширением переменных bash?
- Где есть документ, который показывает их все (в идеале с примерами)?
- Какие версии bash работают с какими трюками?