Mengapa `.` dipilih untuk mewakili perintah titik?

8

Saya bertanya-tanya setelah melihat pertanyaan ini mengapa .simbol dipilih untuk mewakili perintah titik ?

Saya tidak dapat menemukan banyak tentang asal-usulnya atau yang membuatnya dan saya ingin tahu mengapa pemberhentian penuh dipilih untuk mewakili perintah ini.

jesse_b
sumber
2
Apakah Anda mencoba bertanya kepada Stephen Bourne?
schily
1
@schily: Dia tidak tersedia untuk ngobrol
jesse_b
8
Karena itu konyol untuk memanggil "%" the "dot command".
Ignacio Vazquez-Abrams
1
@slm: Benar, mengapa .digunakan untuk mewakili perintah dot (sumber)? Apakah ini terkait dengan .menjadi direktori saat ini?
jesse_b
1
@Rob: Tidak.
jesse_b

Jawaban:

7

Penyebutan awal dari perintah titik yang dapat saya temukan adalah dalam manual untuk shshell Stephen Bourne di Unix Release 7 (mungkin lebih tua, tetapi tidak jelas hadir sebagai salah satu perintah built-in di shdalam Release 6 ).

. file  Read and execute commands from file and return.  The search path
        $PATH is used to find the directory containing file.

Titik, dalam istilah yang cukup umum, tampaknya telah dikaitkan dengan "di sini" atau "saat ini". The .direktori adalah direktori saat ini , dan .alamat di adbdebugger dari rilis yang sama dari Unix memiliki .alamat yang merupakan alamat saat . Demikian juga, memasukkan .diikuti oleh baris baru di ededitor akan menampilkan kembali baris saat ini dari buffer pengeditan (. alamat baris saat ini). Titik juga berarti simpul saat ini dalam bahasa kueri terstruktur tertentu untuk XML, JSON, YAML, dll. (Meskipun ini adalah penemuan selanjutnya).

Oleh karena itu, saya pikir, tidak terlalu jauh untuk berspekulasi bahwa . perintah dalam shell juga berarti "di sini" atau "saat ini". Secara khusus, "jalankan skrip ini di lingkungan saat ini ."

Titik juga cukup cepat dan mudah diketik, dan memiliki perintah singkat untuk melakukan tugas umum (baik itu dalam ed,adb atau di shell) mungkin menjadi alasan lain mengapa nama yang lebih panjang tidak digunakan.


Perhatikan bahwa saya tidak memiliki versi berfungsi shdari Rilis 7 untuk menguji berbagai hal, dan bahwa saya tidak dapat menemukan implementasi aktual dari. shell Bourne dari rilis itu di repositori Git yang disebutkan di atas, jadi saya tidak bisa mengatakan pasti itu benar-benar melakukan apa yang dilakukannya hari ini. Tapi sepertinya memang begitu.

Kusalananda
sumber
+1. Terima kasih atas jawaban yang panjang ini. Omong-omong, apakah ada perbedaan antara titik dan sumber saat digunakan untuk menjalankan perintah dari file: . scriptfileversus source scriptfiledalam bash? Dengan kata lain, apakah mereka dua nama dari perintah bawaan yang sama?
sudodus
@sudodus Mereka setara. The sourceperintah memiliki meskipun sejarah yang berbeda, karena itu diwarisi dari csh.
Kusalananda
2

Mungkin karena itu dotadalah nama simbol ..

1: tempat kecil

Ishak
sumber
+1. Ya tentu saja, ini adalah jawaban singkat ;-)
sudodus