相关疑难解决方法(0)

如何强制 Bash 单词引用别名、函数、文件等?

在尝试向相关问题添加更多细节时,我意识到我不知道如何指定要执行的可用 Bash 字类型之一。按help type字型分为五种:

  • 别名
  • 关键词
  • 功能
  • 内置
  • 文件

一个词可能有多种类型(true只是一个例子;更常见的覆盖词是cd):

$ type -a true
true is a shell builtin
true is /bin/true
Run Code Online (Sandbox Code Playgroud)

您如何强制执行特定的同义词?到目前为止,按优先顺序:

部分解决方案

bash

13
推荐指数
1
解决办法
2142
查看次数

检测(从脚本)是否安装了软件的最佳方法是什么?

之前我一直对which不同平台(Linux 与 Solaris vx. OS X)的命令输出差异感到沮丧,不同的 shell 也可能会影响到这个问题。 type已被建议作为更好的替代方案,但它的便携性如何?

过去,我编写了一些函数来解析which我遇到的不同用例的输出并处理它们。它们可以在我使用的机器上工作,因此对于我的个人脚本来说还可以,但是对于我要发布给其他人使用的软件来说,这似乎非常不可靠。

举一个可能的例子,假设我必须从脚本中检测 bash 和 zsh 在一台机器上是否可用,然后使用 zsh 运行命令(如果存在),如果 zsh 不存在并且 bash 足够,则使用 bash版本没有特定的错误。脚本的其余大部分可能是 Bourne shell 或 Ruby 或其他任何东西,但是必须使用 zsh 或最新版本的 bash 完成这一特定的事情(AFAIK)。

我可以指望type跨平台可用吗?是否有其他替代方案which可以轻松且一致地回答是否安装了特定软件的问题?

(如果你还想给出与我给出的例子特别相关的想法,那很好,但我主要只是询问一般情况:找出特定机器上是否安装了特定东西的最可靠方法是什么? ?)

bash zsh standard which

9
推荐指数
1
解决办法
1963
查看次数

标签 统计

bash ×2

standard ×1

which ×1

zsh ×1