Apa perbedaan antara menjalankan skrip seperti ini:
./test.sh
dan menjalankan skrip seperti ini:
. test.sh
?
Saya mencoba skrip dua baris sederhana untuk melihat apakah saya dapat menemukan apakah ada perbedaan:
#!/bin/bash
ls
Tetapi keduanya . test.sh
dan ./test.sh
mengembalikan informasi yang sama.
test.sh
tidak sama dengan ./test.sh
(yang pertama memanggil PATH
pencarian), begitu juga . test.sh
dan . ./test.sh
berbeda dengan cara yang sama (yang pertama memanggil PATH
pencarian). Banyak cangkang tampaknya secara implisit termasuk .
di akhir PATH
ketika melakukan .
pencarian jalur, tetapi perilaku ini tidak standar. Oleh karena itu, lebih akurat untuk membandingkan test.sh
vs . test.sh
dan ./test.sh
vs . ./test.sh
.