Mereka setara dalam bash dalam hal mereka melakukan hal yang persis sama. Di sisi lain, sourceadalah 5 karakter lebih panjang dan tidak portabel untuk shell POSIX-only atau Bourne sedangkan .(dot) adalah, jadi saya tidak pernah repot-repot menggunakan source.
Itu benar - sumber file menjalankan perintah di shell saat ini dan itu akan mempengaruhi lingkungan shell Anda saat ini. Anda masih bisa meneruskan argumen ke file bersumber dan bash akan benar-benar mencari $PATHnama file seperti perintah normal jika tidak mengandung garis miring.
Tidak terkait dengan pertanyaan asli .vs source, tetapi dalam contoh Anda,
. ./myScript.sh
tidak identik dengan
source myScript.sh
karena sementara .dan sourcesecara fungsional identik, myScript.shdan ./myScript.shtidak sama. Karena ./myScript.shmengandung garis miring, itu ditafsirkan sebagai jalur dan shell hanya menggunakan ./myScript.sh. Namun, myScript.shtidak memiliki garis miring sehingga shell melakukan $PATHpencarian terlebih dahulu. Ini adalah perilaku standar yang ditentukan POSIX untuk .. Sebagian besar shell default untuk ini meskipun mereka dapat menambahkan ekstensi (seperti mencari di direktori kerja saat ini setelah pencarian jalur) atau opsi untuk mengubah perilaku ./ source.