В bash, что означает dir=${0%/*}?

Я нашел этот кусок кода во время изучения сценария bash:

dir=${0%/*}

Я подозреваю, что код внутри скобок является регулярным выражением, но я не понимаю, что это значит. Любая идея?

1 ответ

Решение

Это не регулярное выражение, но это сопоставление с образцом. Это устанавливает dir к названию сценария, который $0, но без последней косой черты и любой не косой черты после нее, если есть косая черта в $0, Если косой черты нет $0, dir получает копию $0 без изменений. См. "Расширение параметров" в вики Bash Hackers.

Другие вопросы по тегам