Shell ESXi 主机下的别名扩展不会自动完成 - 并且 - 检测是否 运行 交互
Shell alias expansion under ESXi host does not auto complete - AND - detecting if running interactively
由于 ESXi 未附带 bash,我正在寻找一个 .sh 文件来为通过 ssh 连接时的常用命令设置一些自定义别名。
在 RHEL 等其他发行版上,我可以键入别名的一部分,然后按 Tab 键自动完成。这在 ESXi 7.x.
下似乎不起作用
是否有我可以打开的开关或其他东西使自定义别名自动完成工作,或者这只是 ESX 提供的 shell 的限制?
注意:如果键入 l<tab>
,那么我会得到以 L.
开头的内置命令
另外,当我讨论 ESXi 的话题时 shell… 在 RHEL 上,我的 .bashrc 文件中有这一行
[[ $- != *i* ]] && return
此代码的目的是,如果当前会话不是 运行 交互,则 return 否则 运行 其余代码。
当我在 esx 上 运行 时,出现错误 sh: *i*: unknown operand
。 shell 不支持这种子字符串方法吗?
如果我 运行 echo $-
那么我得到“smi”作为输出。
谢谢
您可能知道 ESXi 提供 ash(不是 bash)和 Busybox。尽管 Busybox 包含 ash,但我记得 ESXi 使用自定义构建的可执行文件(检查 /bin/ash 指向或不指向的位置)。维基百科关于 ash 的文章很好地概述了 ash 及其极简主义哲学。 Shell 历史最初不包括在内,自动完成绝对被认为是一个不错的选择,但没有成功。很抱歉成为坏消息的传递者。
由于 ESXi 未附带 bash,我正在寻找一个 .sh 文件来为通过 ssh 连接时的常用命令设置一些自定义别名。
在 RHEL 等其他发行版上,我可以键入别名的一部分,然后按 Tab 键自动完成。这在 ESXi 7.x.
下似乎不起作用是否有我可以打开的开关或其他东西使自定义别名自动完成工作,或者这只是 ESX 提供的 shell 的限制?
注意:如果键入 l<tab>
,那么我会得到以 L.
另外,当我讨论 ESXi 的话题时 shell… 在 RHEL 上,我的 .bashrc 文件中有这一行
[[ $- != *i* ]] && return
此代码的目的是,如果当前会话不是 运行 交互,则 return 否则 运行 其余代码。
当我在 esx 上 运行 时,出现错误 sh: *i*: unknown operand
。 shell 不支持这种子字符串方法吗?
如果我 运行 echo $-
那么我得到“smi”作为输出。
谢谢
您可能知道 ESXi 提供 ash(不是 bash)和 Busybox。尽管 Busybox 包含 ash,但我记得 ESXi 使用自定义构建的可执行文件(检查 /bin/ash 指向或不指向的位置)。维基百科关于 ash 的文章很好地概述了 ash 及其极简主义哲学。 Shell 历史最初不包括在内,自动完成绝对被认为是一个不错的选择,但没有成功。很抱歉成为坏消息的传递者。