$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Itu ada, dan itu bisa dijalankan. Mengapa tidak ada dokumentasi tentang hal itu di Ubuntu? Apa fungsinya? Bagaimana saya bisa menginstal dokumentasi tentangnya?
bash
shell
documentation
Andrea Ambu
sumber
sumber
$ type source
source is a shell built-in
$ whatis source
source (1) - bash built-in commands, see bash(1)
. Juga,man source
bawa saya keBASH_BUILTINS(1)
halaman manual. Ini ada di Fedora btw, tidak tahu mengapa paket-paket debian itu tidak (atau buruk) didokumentasikan.Jawaban:
source
adalah perintah built-in bash shell yang mengeksekusi konten file yang dilewatkan sebagai argumen, di shell saat ini . Ini memiliki sinonim dalam.
(periode).sumber
source
perintah khusus bash atau apakah shell lain juga memilikinya? (Saya meminta untuk mendapatkan tag tepat pada pertanyaan ...)source
hadir di kulit Bourne dan karenanya mungkin ada di semua keturunannya. en.wikipedia.org/wiki/Bourne_shell . Saya tahu bahwa tidak semua shell memilikisource
perintah, kurang yakin tentang shell mana yang mengandungnya.source
tidak ada dalam shell Bourne, itu adalah ekstensi GNU yang datang jauh kemudian. Sintaksis asli dan masih portabel (POSIX) adalah menggunakan perintah "dot", yaitu.
sebagai gantinya. Saya pribadi tidak pernah menggunakansource
mengingat lebih lama untuk mengetik dan tidak memiliki nilai tambah. Saya kira tujuan utamanya adalah membuat skrip lebih mudah dibaca untuk pemula.source
tidak hanya lebih deskriptif, tetapi juga terlihat seperti sesuatu selain kesalahan ketik. Saya memiliki orang yang melewati titik / titik ketika saya mengirim perintah teknologi dalam email.source
dalam "file konfigurasi" yang sebagian besar berisi tugas variabel. Tugas variabel kemudian mengontrol hal-hal yang dilakukan skrip lainnya. Tentu saja, skrip yang baik akan menetapkan variabel ke default yang masuk akal sebelumsource
, atau setidaknya memeriksa nilai yang valid.Hati-hati!
./
dansource
yang tidak persis sama ../script
menjalankan skrip sebagai file yang dapat dieksekusi, meluncurkan shell baru untuk menjalankannyasource script
membaca dan mengeksekusi perintah dari nama file di lingkungan shell saat iniCatatan:
./script
bukan. script
, tapi. script
==source script
https://askubuntu.com/questions/182012/is-there-a-difference-between-and-source-in-bash-after-all?lq=1
sumber
./ == source == .
Berguna untuk mengetahui perintah 'type':
setiap kali sesuatu adalah shell builtin saatnya untuk melakukan
man bash
.sumber
man
)help {builtin-name}
, yaituhelp source
.help
tidak bekerja di mana-mana (minimal zsh).type
tidak.. (a period) adalah perintah built-in bash shell yang mengeksekusi perintah dari file yang diteruskan sebagai argumen, dalam shell saat ini. 'sumber' adalah sinonim untuk '.'
Dari halaman manual Bash:
sumber
'sumber' adalah versi panjang dari '.' perintah. Pada prompt bash, seseorang dapat melakukannya:
untuk memuat ulang pengaturan bash Anda (diubah?) untuk bash yang sedang berjalan.
Versi singkatnya adalah:
Halaman manual:
sumber
source
perintah mengeksekusi skrip yang disediakan (izin yang dapat dieksekusi tidak wajib ) di lingkungan shell saat ini , sementara./
mengeksekusi skrip yang dapat dieksekusi yang disediakan di shell baru .source
perintah memang memiliki sinonim. filename
.Untuk membuatnya lebih jelas, lihat skrip berikut, yang mengatur alias.
membuat alias
Sekarang kita memiliki dua pilihan untuk menjalankan skrip ini. Tetapi dengan hanya satu opsi, alias yang diinginkan untuk shell saat ini dapat dibuat di antara dua opsi ini.
Pilihan 1:
./make_alias
Jadikan skrip dapat dieksekusi terlebih dahulu.
Menjalankan
Memeriksa
Keluaran
Aduh! Alias pergi dengan shell baru.
Mari kita pergi dengan opsi kedua.
Pilihan 2:
source make_alias
Menjalankan
atau
Memeriksa
Keluaran
Ya Alias sudah diatur.
sumber
Jika ragu, hal terbaik yang harus dilakukan adalah menggunakan
info
perintah:sumber
Ketikkan perintah "sumber bantuan" di shell Anda.
Anda akan mendapatkan output seperti ini:
sumber
Dari Proyek Dokumentasi Linux, Panduan Script Advanced Bash,
Bab 15 - Perintah dan Bangun Internal :
Jadi, bagi mereka yang akrab dengan bahasa pemrograman C, sumber file memiliki efek yang mirip dengan
#include
arahan.Perhatikan juga bahwa Anda dapat memberikan argumen posisi ke file yang sedang dibuat, seperti:
sumber
source
bisa mengambil argumen atau menggunakanreturn
.Perlu dicatat bahwa walaupun menjadi perintah yang luar biasa, baik
source
steno atau tidaknya.
akan sumber lebih dari satu file, artinyaatau
tidak akan bekerja
Kita bisa mundur menggunakan
for
loop, tetapi itu akan mengeluarkan eksekusi berkali-kali, menciptakan banyak perintah atau mengeluarkannya.Kesimpulan:
source
tidak mengambil banyak file sebagai input. Argumennya harus satu.Yang menyebalkan IMHO.
sumber
Dengan sumber Anda dapat mengirimkan variabel atau fungsi dari file lain ke skrip Anda dan menggunakannya tanpa harus menulisnya lagi.
FI:
Tepuk tangan
sumber