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 sourceatau help ..
Dalam kasus Anda, file /etc/vz/vz.confakan 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.confdalam banyak hal: yang paling jelas adalah bahwa file tidak perlu dieksekusi; maka Anda akan berpikir untuk menjalankannya bash /etc/vz/vz.conftetapi 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.
sourcebukan 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 sourcesinonim bash .ada sebagian untuk portabilitas.
.itu portabel secara universal dan sourcetersebar 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),sourcekhusus untuk bash.