linux – 从内部脚本确定解释器

linux – 从内部脚本确定解释器,第1张

概述我有一个剧本;它需要使用bash的关联数组(相信我的那个). 它需要在普通机器上运行,以及某个具有/ bin / bash 3.2的附加机器. 如果我将解释器声明为/ opt / userwriteablefolder / bin / bash4,我放在那里的bash 4.2的位置,它工作正常..但它只适用于该机器. 我想在我的脚本开头检查解释shell是什么,如果是bash3.2,则调用bash 我有一个剧本;它需要使用bash的关联数组(相信我的那个).

它需要在普通机器上运行,以及某个具有/ bin / bash 3.2的附加机器.

如果我将解释器声明为/ opt / userwriteablefolder / bin / bash4,我放在那里的bash 4.2的位置,它工作正常..但它只适用于该机器.

我想在我的脚本开头检查解释shell是什么,如果是bash3.2,则调用bash4 $0 $@.问题是我无法找出任何方法来确定解释shell是什么.我真的不愿意做一个基于$HOSTname的决定,但是如果有必要的话会有效(这也很尴尬,因为它需要通过“我们已经完成这个”标志).

出于几个原因,“只有两个脚本”并不是一个好的解决方案.

解决方法 您可以通过查看$SHELL来检查使用哪个解释器,其中包含shell可执行文件的完整路径(例如/ bin / bash)

然后,如果它是Bash,您可以通过各种方式检查Bash版本:

> ${BASH_VERSINFO [*]} – 版本组件的数组,例如(4 1 5 1发布x86_64-pc-linux-gnu)> ${BASH_VERSION} – 字符串版本,例如4.1.5(1) – 释放>当然,“$0” – 版本

总结

以上是内存溢出为你收集整理的linux – 从内部脚本确定解释器全部内容,希望文章能够帮你解决linux – 从内部脚本确定解释器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1023461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存