我知道 Bash 和 Zsh 支持local
变量,但有些系统只有 POSIX 兼容的 shell。并且local
在 POSIX shell 中未定义。
所以我想问一下哪些shell支持local
关键字定义局部变量?
编辑:关于外壳我的意思是默认/bin/sh
外壳。
我的 GNU/Linux 系统上的sys-apps/shadow包附带了一个useradd
命令,该命令支持我之前忽略的一个选项:--non-unique
. 为了方便从大学shellig回家,我为我的原始用户名(在家中的随意名称)创建了一个别名:
useradd --non-unique -u 1001 \
--no-create-home --home-dir /home/casualname \
-g 1001 -G `id casualname -G | tr ' ' ,` universityUsername
Run Code Online (Sandbox Code Playgroud)
这允许我使用登录 universityUsername 从校园登录,而无需创建 ~/.ssh/config 别名或指定 -l 选项ssh
。登录后,whoami
报告我是casualname。这是因为casualname 看起来更靠近/etc/passwd 文件的顶部。
我想知道这些别名的支持范围有多广,以及使用它们是否有任何缺点。而且,有没有办法在用户无法重新排序 /etc/passwd 中的条目的系统上选择首选用户别名作为代理($USER 设置为什么)?