Saya menemukan contoh ini ketika mencoba memasang perangkat usb di dalam wadah openvz dan saya belum pernah melihat konstruksinya di baris kedua sebelumnya. Bisakah Anda menjelaskan apa artinya?
#!/bin/bash
. /etc/vz/vz.conf
Saya menemukan contoh ini ketika mencoba memasang perangkat usb di dalam wadah openvz dan saya belum pernah melihat konstruksinya di baris kedua sebelumnya. Bisakah Anda menjelaskan apa artinya?
#!/bin/bash
. /etc/vz/vz.conf
Jawaban:
Ini adalah sinonim dari builtin source
. Ini akan menjalankan perintah dari file di shell saat ini , seperti dibaca dari help source
atau help .
.
Dalam kasus Anda, file /etc/vz/vz.conf
akan dieksekusi (kemungkinan besar, itu hanya berisi tugas variabel yang akan digunakan nanti dalam skrip). Ini berbeda dari hanya mengeksekusi file dengan, misalnya, /etc/vz/vz.conf
dalam banyak hal: yang paling jelas adalah bahwa file tidak perlu dieksekusi; maka Anda akan berpikir untuk menjalankannya bash /etc/vz/vz.conf
tetapi ini hanya akan mengeksekusinya dalam proses anak, dan skrip induk tidak akan melihat modifikasi apa pun (misalnya variabel) yang dibuat anak tersebut.
Contoh:
$ # Create a file testfile that contains a variable assignment:
$ echo "a=hello" > testfile
$ # Check that the variable expands to nothing:
$ echo "$a"
$ # Good. Now execute the file testfile with bash
$ bash testfile
$ # Check that the variable a still expands to nothing:
$ echo "$a"
$ # Now _source_ the file testfile:
$ . testfile
$ # Now check the value of the variable a:
$ echo "$a"
hello
$
Semoga ini membantu.
source
bukan hanya bash - itu ada di kerang C-style ( csh
, tcsh
) - dan zsh juga. .
bekerja dalam cangkang Bourne-style termasuk yang terdaftar . Mempertimbangkan bahwa bash adalah shell bergaya Bourne dan hampir tidak ada script bash dengan kompleksitas non-sepele yang cenderung berjalan dalam shell gaya-C, itu benar .
harus dianggap jauh lebih portabel. Tapi source
sinonim bash .
ada sebagian untuk portabilitas.
.
itu portabel secara universal dan source
tersebar luas, tetapi tidak berfungsi dengan jelas sh
.
Ketika sebuah skrip dijalankan menggunakan `source 'ia berjalan di dalam shell yang ada, variabel apa pun yang dibuat atau dimodifikasi oleh skrip akan tetap tersedia setelah skrip selesai.
Sintaks. namafile [argumen]
source filename [arguments]
.
akan bekerja di sebagian besar shell (sh, ash, ksh, dll),source
khusus untuk bash.