Saya perlu mencari bantuan untuk perintah titik .
seperti di . ./my_script.sh
(maksud saya titik pertama.)
Saya sudah mencoba menemukan halaman manual menggunakan man .
dan man \.
. Bagaimana saya bisa menampilkan halaman manual yang menjelaskan penggunaan perintah .
?
help .
dot
. Lihat spesifikasi formal di pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html.
adalah sebuah perintah, khususnya shell builtin. Di Bash setara dengansource
..
adalah POSIX, bukan hanya bash. Misalnya itu juga dalam zsh dan ksh.Jawaban:
Pertama-tama Anda harus memohon
type .
, Anda mungkin akan mendapatkan sesuatu seperti:Builtin adalah bagian dari shell Anda, mereka tidak memiliki halaman manual sendiri. Beberapa dari mereka mungkin tampaknya memilikinya, misalnya
echo
adalah builtin di Bash tetapi kemungkinan besar ada executable terpisah seperti/bin/echo
di sistem Anda dan dalam hal iniman echo
merujuk pada yang terakhir . Keduaecho
s ini mungkin tidak sepenuhnya setara.Shell Anda dapat memberikan informasi tentang builtin melalui
help
builtin; cobahelp help
,help type
dan akhirnya:Builtins juga dapat dicantumkan di halaman buku panduan shell Anda. Misalnya (dalam Debian saya) Bash bawaan sudah tercakup langsung
man bash
, namun untuk Zsh bawaanman zsh
saya minta saya lariman zshbuiltins
. Secara umum shell mungkin atau mungkin tidak menjelaskan builtin mereka.sumber
.
merupakan shell-built-in dan Ini harus ditandai sebagai jawaban karena OP bertanyahow to find help for . in *nix ?
.type .
untuk menunjukkan bahwa beberapa perintah adalah shell bawaan.bash-builtins(1)
halaman buku panduan, yang berukuran lebih nyaman.. --help
bekerjaCoba gunakan
man sh
atauman bash
atau halaman manual untuk shell apa pun yang Anda gunakan. (Mungkinman $SHELL
.)Ini secara resmi tidak disebut perintah "titik", tetapi
source
perintah. Mencari katasource
mungkin bermanfaat.misal, halaman manual bash (cari "setiap perintah builtin"), dan Anda akan segera menemukan dokumentasinya.
Sedangkan untuk menjelaskan penggunaannya, saya bisa melakukannya di sini. Saya hanya akan merujuk ini sebagai
source
perintah, mengakui bahwa itu dapat disingkat menjadi hanya periode ketika Anda menggunakan beberapa shell, dan dengan beberapa shell yang mungkin perlu perintah (karena titik mungkin dikenali tetapi seluruh katasource
mungkin tidak menjadi).Jika Anda menggunakan
source
perintah, shell Anda akan membaca setiap baris dari file skrip, dan mencoba untuk mengeksekusinya. Anda perlu izin "baca" pada file. (Tidak masalah jika Anda memiliki izin "eksekusi".) Jika Anda memodifikasi variabel, itu cenderung mempengaruhi shell Anda saat ini.Jika, di sisi lain, Anda hanya mencoba mengeksekusi file, maka shell Anda akan meminta sistem operasi untuk mengurus permintaan ini. Ini akan membutuhkan izin "eksekusi". (Pada beberapa sistem, seperti OpenBSD, Anda tidak perlu izin "baca" untuk ini. Di sistem lain, Anda akan memerlukan banyak variasi Unix.) File tersebut mungkin harus mulai dengan tajuk yang sesuai (misalnya,
#!/bin/sh
Sehingga pengoperasian) sistem mengenali ini sebagai file skrip. Sistem operasi akan menjalankan salinan shell yang diminta, dan memberi tahu shell itu untuk menjalankan konten skrip. Jika lingkungan shell diubah (misalnya, variabel mendapatkan nilai baru, direktori kerja diubah (dengancd
), deskriptor file dialihkan (denganexec
), dll.), itu hanya akan berdampak pada sub-shell yang dipanggil untuk skrip, dan tidak dapat memodifikasi lingkungan di shell induk yang disebut file skrip.sumber
source
di bash. Dalam spesifikasi POSIX, itu disebut "perintah dot" (dansource
alias tidak didukung).man bash
dan lalu apa/.
,? Sangat tidak berguna./source
akan berguna, tetapi untuk itu Anda harus tahu itu.
dan itusource
adalah hal yang sama..
dan itu mungkin menjadisource
, tetapi sebagai @CharlesDuffy telah disebutkan, itu selalu.
dalam setiap shell POSIX-compliant dan hanya memiliki aliassource
di satu shell.Tidak ada orang lain yang menyebutkannya, karena sering dilupakan.
Petunjuk terbesar Anda akan datang dari perintah membantu
whatis
.EDIT:
Beberapa orang telah menunjukkan di komentar bahwa ini tidak ada dalam beberapa distrobutions - mungkin ini adalah paket yang dapat diinstal, atau mengaktifkan beberapa cara - Saya memilikinya secara default di gentoo;)
Ini termasuk yang luar biasa - yang memberi tahu Anda yang dapat dieksekusi dipanggil, dan di mana yang memberi Anda semua jalan ke nama yang dapat dieksekusi Anda, dan itu halaman manual (jika ada di beberapa jalur).
sumber
whatis .
mengembalikanman: 0703-307 . is not found.
whatis .
tidak mengembalikan apa pun di Ubuntu 16.04whatis .
" memberi ".: nothing appropriate.
" pada OpenBSD, menghasilkan 47 baris output. Untuk contoh khusus ini (menggunakan "whatis .
" di Gentoo), hasilnya mungkin saja tidak baik (artinya teknik ini umumnya tidak berguna untuk banyak skenario contoh lainnya).man source
akan menunjukkan penjelasan yang Anda butuhkan.Titik sama dengan perintah sumber.
source
mengeksekusi skrip di shell saat ini alih-alih dalam subshell (itu cara biasa).Menggunakan
source
variabel yang ditetapkan di dalam skrip dipertahankan setelah skrip selesai.sumber
man source
berfungsi? Bukan di Debian saya, karena itu pertanyaannya.source
upstream - itu kemungkinan besar dilakukan oleh CentOS.man source
memberi Andaman bash_builtins
, yang tidak menjelaskan apa pun, tetapi merujuk Anda kebash(1)
man source
memberi sayasource(3tcl)
...type command
dan kemudian jika perintahnya adalah builtinhelp command
mungkin adalah cara yang tepat ...Ini
.
adalah sinonim untuk shellsource
perintah dan dalam bash , sintaksnya ditampilkan oleh ...Fungsinya persis seperti
include
danimport
memerintahkan dalam bahasa lain karena ia membaca file target dan menafsirkannya seolah-olah itu adalah bagian dari skrip saat ini. Dengan demikian, file itu akan dieksekusi secara keseluruhan sebelum perintah di sisa skrip saat ini.Biasanya harus di awal skrip saat ini dan paling sering digunakan untuk memuat variabel dan / atau definisi fungsi.
sumber