GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan Script Dengan “. ” Dan Dengan “sumber”?

  1. Saya bertanya-tanya apakah dua cara berikut menjalankan skrip bash
    setara?

    . ./myScript.sh
    
    source myScript.sh
    
  2. Apakah keduanya menjalankan konten skrip alih-alih menjalankan skrip, yaitu tidak membuat subkulit untuk menjalankan skrip?

Jawaban yang Diterima:

  1. Mereka setara dalam bash karena mereka melakukan hal yang persis sama. Sebaliknya, source lebih panjang 5 karakter dan tidak portabel untuk shell khusus POSIX atau Bourne sedangkan . (titik) adalah, jadi saya tidak pernah repot menggunakan source .

  2. Itu benar – sumber file menjalankan perintah di shell saat ini dan itu akan mempengaruhi lingkungan shell Anda saat ini. Anda masih dapat meneruskan argumen ke file sumber dan bash akan benar-benar terlihat di $PATH untuk nama file seperti perintah biasa jika tidak mengandung garis miring.

Tidak terkait dengan pertanyaan awal . vs source , tetapi dalam contoh Anda,

. ./myScript.sh 

tidak identik dengan

source myScript.sh

karena while . dan source secara fungsional identik, myScript.sh dan ./myScript.sh tidak sama. Sejak ./myScript.sh berisi garis miring, itu ditafsirkan sebagai jalur dan shell hanya menggunakan ./myScript.sh . Namun, myScript.sh tidak memiliki garis miring sehingga shell melakukan $PATH cari dulu. 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 .


Linux
  1. Memeriksa Skrip Apakah Berjalan?

  2. Shell Script Wrapper Untuk Mencegah Menjalankan Perintah Tanpa Argumen?

  3. Menjalankan skrip shell secara paralel

  1. Impor fungsi dan variabel ke Bash dengan perintah sumber

  2. Cara menangkap sesi terminal dan output dengan perintah skrip Linux

  3. Skrip Linux untuk memeriksa apakah proses sedang berjalan dan menindaklanjuti hasilnya

  1. Rekam terminal Anda dengan skrip dan pemutaran ulang skrip

  2. Mencegah skrip bash berjalan secara bersamaan

  3. Pangkas Dengan Lvm Dan Dm-crypt?