Apa perbedaan antara menjalankan skrip (misalnya / beberapa / skrip) dengan source /some/script
dan . /some/script
di Bash?
147
source
dan .
identik di Bash .
Bagi siapa saja yang mungkin ingin memverifikasi bahwa perintah itu hanya sinonim dan tidak lebih, lihat kode sumber , katakan untuk versi 4.3, dan periksa file builtins/source.def
. Anda akan membaca bahwa kedua built-in perintah, source
dan .
, menggunakan fungsi yang sama: source_builtin
.
.
adalah perintah sumber tradisional, yang diwarisi dari shell bourne kuno.source
hanyalah bash builtin yang melakukan persis sama.
, mungkin karena itu lebih mudah dibaca (.
sendirian mungkin sulit dikenali dengan font kecil). Anda akan melihathelp source
danhelp .
menampilkan info yang sama.man bash
dan kemudian mencarisource
Anda akan melihat bahwa itusource filename [arguments]
adalah sinonim untuk. filename [arguments]
..
identik dengansource
dalam bash, tetapi tidak dalam POSIX sh, jadi Anda harus menggunakan.
jika skrip Anda dijalankan oleh / bin / sh. Perhatikan bahwa bash mengklaim berjalan seperti POSIX sh ketika dipanggil sebagai / bin / sh, tetapi menerimasource
tanpa keluhan.Perilaku ini telah menggigit saya, skrip diuji dengan bash sebagai / bin / sh gagal ketika dijalankan di bawah abu, misalnya.
sumber
#!/bin/sh
Anda tidak boleh menganggap shell mendukung apa pun kecuali fitur POSIX. pubs.opengroup.org/onlinepubs/9699919799/utilities/…