Câu trả lời của jordanm là không chính xác. /etc/profile
không có nguồn gốc bởi tất cả các vỏ. Như bạn chỉ ra, nó không có nguồn gốc bởi csh
, tcsh
- tôi không chắc chắn về điều đó zsh
. Nó có nguồn gốc sh
từ các dẫn xuất vỏ Bourne ( ), như Korn Shell ( ksh
) và BASH ( bash
). csh
sử dụng /etc/login
. Những người có xu hướng độc quyền sử dụng các dẫn xuất Borne Shell có xu hướng quên các vỏ khác tồn tại. Họ thêm một cái gì đó để /etc/profile
mong đợi nó sẽ áp dụng cho "tất cả người dùng" và sau đó rất ngạc nhiên khi người dùng C Shell kỳ lạ (và chúng tôi là một số lẻ) không có nội dung họ định cấu hình /etc/profile
.
Mặc dù vậy, mọi người có xu hướng quên đi các vỏ phái sinh Borne Shell khác tồn tại. Nếu họ sử dụng bash
hoặc ksh
, họ cảm thấy thoải mái khi thêm cú pháp vào /etc/profile
đó không hợp lệ trong Bourne Shell, như nói việc xác định một biến và xuất nó trên cùng một dòng. Sau đó, bạn nhận được một số kịch bản đó #!/bin/sh
và nó bóp nghẹt cú pháp. /etc/profile
nên bám theo cú pháp tương thích của Bourne Shell.
Tương tự như vậy, bạn nên tự mình .profile
sử dụng nó (sử dụng .bash_profile
nếu bạn muốn một số cú pháp bash) - nó có thể là thêm một chút gõ, nhưng nó là gõ thêm bạn làm tất cả một lần. Tham khảo ${HOME}
và không ~
, v.v. Một số hương vị của Unix, cron job chạy theo sh
, mỗi dòng của bạn Makefile
được xử lý sh
, vì vậy nếu bạn đang làm việc trên nhiều hương vị của UNIX, thì thực sự phải trả tiền để giữ cho .profile
vỏ Bourne của bạn tương thích. Là một SysAdmin, tôi không thể nói cho bạn biết tôi đã giúp ai đó bao nhiêu lần bằng cách sửa lỗi của họ .profile
để tương thích với Bourne Shell.
Trên Linux, /bin/sh
là một liên kết đến /bin/bash
và khi bạn chạy nó, nó trông giống như một con đường được sử dụng để chạy nó và (về lý thuyết) chỉ giới hạn ở những thứ mà Bourne Shell hỗ trợ. Tương tự như vậy, vi
trên Linux thực sự vim
, một lần nữa tự giới hạn. Thỉnh thoảng bạn thấy các tính năng "chảy qua". Thỉnh thoảng vim
giả vờ vi
sẽ làm một cái gì đó vim
hỗ trợ mà vi
không phải vì các tác giả vim
quên vô hiệu hóa điều này trong chế độ "tương thích ngược". Tôi sẽ không ngạc nhiên nếu bash
giả vờ sh
có một số tính năng "chảy máu" tương tự. Sẽ không ngạc nhiên nếu một số tính năng "hoạt động trên Borne Shell trên Linux", nhưng không phải trên UNIX dựa trên System V hoặc BSD (AIX, OpenBSD, v.v.).
Does it have positive ... and understood.
Bạn đang cố gắng nói điều gì ? Tôi hiểu mọi thứ khác ngoài đoạn đó.