Разница между тремя командами, которые используются для выполнения сценария оболочки?

Возможный дубликат:
Различные способы выполнения сценария оболочки

Каковы конкретные различия между командами, перечисленными ниже?

./<scriptname> . <scriptname> bash <scriptname> 

Может ли кто-нибудь объяснить различия в простых словах, пожалуйста?

./<scriptname> выполняет <scriptname> в дочернем процессе и ждет его выхода.

. <scriptname> . <scriptname> выполняет <scriptname> в том же процессе; причины, по которым он используется, обычно позволяют <scriptname> изменять среду и выполнять дополнительные действия без затрат ресурсов на создание нового процесса.

bash <scriptname> сообщает bash для запуска <scriptname> . Если <scriptname> имеет shebang с <scriptname> пути к bash ( #!/bin/bash ) вверху, он будет иметь тот же эффект, что и выполнение <scriptname> . Если <scriptname> указывает на другой интерпретатор ( #!/bin/sh <scriptname> #!/bin/sh ), тогда <scriptname> обычно будет интерпретироваться этой программой, но вы переопределяете это, попросив bash интерпретировать его.