[OpenWrt-Devel] [PATCH] base-files: Add /etc/shinit for non-login shell init

Petr Štetiar ynezz at true.cz
Sat Apr 25 07:37:46 EDT 2020


Jeffery To <jeffery.to at gmail.com> [2019-05-03 02:24:27]:

Hi,

> Because /etc/profile (and ~/.profile) are read by login shells only,
> aliases and functions defined there are not available to non-login
> shells, e.g. when using screen or tmux.
> 
> If the ENV environment variable exists (exported by /etc/profile or
> ~/.profile) and references an existing file, then all interactive shells
> (login or non-login) will read that file as well.
> 
> This sets the ENV environment variable in /etc/profile, pointing to
> /etc/shinit.
> 
> This also adds /etc/shinit, which:
> 
> * Contains alias and function definitions originally in /etc/profile
> 
> * Sources /etc/mkshrc if the user is using mksh (also originally in
>   /etc/profile), as /etc/mkshrc is meant for all interactive shells
> 
> * Sources ~/.mkshrc if the user is using mksh, to compensate for the
>   fact that mksh will not read ~/.mkshrc if ENV is set
> 
> * Sources ~/.shinit if the user is not using mksh
> 
> This also removes the shebang from /etc/profile, as the file is sourced,
> not executed.

FYI seems like this didnt played well with bash[1].

1. https://bugs.openwrt.org/index.php?do=details&task_id=3019

-- ynezz

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list