Jawaban jordanm salah. /etc/profile
tidak bersumber dari semua kerang. Seperti yang Anda tunjukkan, itu tidak bersumber dari csh
, tcsh
- Saya tidak yakin tentang zsh
. Ini bersumber dari sh
turunan Bourne shell ( ), seperti Korn Shell ( ksh
) dan BASH ( bash
). csh
menggunakan /etc/login
. Orang-orang yang cenderung menggunakan turunan Borne Shell cenderung melupakan cangkang lain yang ada. Mereka menambahkan sesuatu yang /etc/profile
diharapkan berlaku untuk "semua pengguna" dan kemudian terkejut ketika pengguna C Shell aneh (dan kami banyak yang aneh) tidak memiliki hal-hal yang mereka konfigurasikan /etc/profile
.
Meski begitu, orang cenderung melupakan cangkang turunan Borne Shell lain yang ada. Jika mereka menggunakan bash
atau ksh
, mereka merasa bebas untuk menambahkan sintaks /etc/profile
yang tidak valid di Bourne Shell, seperti mengatakan mendefinisikan variabel dan mengekspornya pada baris yang sama. Kemudian Anda mendapatkan beberapa skrip yang berfungsi #!/bin/sh
dan tersedak sintaksisnya. /etc/profile
harus tetap menggunakan sintaks yang kompatibel dengan Bourne Shell.
Demikian juga, Anda harus tetap menggunakan itu sendiri .profile
(gunakan .bash_profile
jika Anda ingin sintaks bash) - ini mungkin sedikit mengetik ekstra, tetapi itu adalah mengetik tambahan yang Anda lakukan sekaligus. Referensi ${HOME}
dan bukan ~
, dll. Beberapa rasa Unix, pekerjaan cron berjalan di bawah sh
, setiap baris Anda Makefile
diproses oleh sh
, jadi jika Anda bekerja di berbagai rasa UNIX, itu benar-benar bermanfaat untuk menjaga agar .profile
shell Bourne Anda kompatibel. Sebagai SysAdmin, saya tidak bisa memberi tahu Anda berapa kali saya telah membantu seseorang dengan memperbaiki mereka .profile
agar kompatibel dengan Bourne Shell.
Di Linux, /bin/sh
adalah tautan ke /bin/bash
dan ketika Anda menjalankannya, itu terlihat jalur yang digunakan untuk menjalankannya, dan (secara teori) membatasi dirinya hanya untuk hal-hal yang didukung Bourne Shell. Demikian juga, vi
di Linux benar-benar vim
, sekali lagi membatasi dirinya. Terkadang Anda melihat fitur "bleed through". Kadang vim
- kadang berpura-pura vi
akan melakukan sesuatu yang vim
mendukung yang vi
tidak karena penulis vim
lupa menonaktifkan ini dalam mode "vi backwards kompatibilitas". Saya tidak akan terkejut jika bash
berpura-pura sh
memiliki beberapa fitur "berdarah" yang serupa. Tidak akan terkejut jika beberapa fitur "berfungsi pada Borne Shell di Linux", tetapi tidak pada UNIX berbasis Sistem V atau BSD (AIX, OpenBSD, dll.).
Does it have positive ... and understood.
Apa yang ingin kamu katakan di sini? Saya mengerti segalanya selain paragraf itu.