Редактировать: Я только что понял, что не ответил на другую часть вашего вопроса ... но ответ от leeroy делает это. Я вроде ответил на что-то еще, но я надеюсь, что это поможет: -)
Функция sh
запускает bash для сценария, с которым вы ее представляете. См. справочную страницу для получения дополнительной информации, но вы можете видеть, что sh
- это синоним bash
.
Когда вы запускаете скрипт ala ./setup.sh
, он идентифицирует скрипт на основе того, что находится вверху файла, обычно называемого "Шебанг"
скрипт bash будет иметь
#!/bin/sh
Или аналогично в верхней части файла, что позволяет использовать точечный метод. Вы также можете использовать другие вещи, например, скрипт Python может иметь
#!/usr/bin/env/python
И если ваш путь верен, он будет запускать скрипт как скрипт Python вместо bash с использованием точечной нотации.
Надеюсь, это объясняет это просто!