如何判断一台Centos中是不是已安装了docker-compose?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一台Centos中是不是已安装了docker-compose?相关的知识,希望对你有一定的参考价值。

参考技术A 直接运行 $ docker version

安装成功了的,可以看到详细信息。
还有就是检查启动项 systemctl list-unit-files
在《Linux就该这么学》有专门的Linux命令库可以查询详细命令格式追问

docker-compose
不是docker

参考技术B docker-compose version本回答被提问者采纳

如何判断 JavaScript 文件是不是已包含在 ASP.NET 页面中?

【中文标题】如何判断 JavaScript 文件是不是已包含在 ASP.NET 页面中?【英文标题】:How can I tell whether a JavaScript file has already been included in an ASP.NET page?如何判断 JavaScript 文件是否已包含在 ASP.NET 页面中? 【发布时间】:2010-10-28 20:22:55 【问题描述】:

我有一个 ASP.NET 用户控件(.ascx 文件)。在这个用户控件中,我想使用一个 .js 文件。

所以我在页面上包含<script src="file.js" type"text/javascript"></script>

但是,有时我在已加载相同脚本的网页中使用此用户控件。

如何添加 <script /> 声明,仅当页面尚未包含同一脚本的另一个 <script /> 标记时才会在页面上呈现?

【问题讨论】:

有什么原因不能在所有页面中都包含 javascript 库吗? jfar,当我显示特定控件时,我的网站只需要一个特定页面上的 javascript 文件,大多数时候该控件根本不会在该页面上使用。将 javascript 提供给访问网站每个页面的每个用户都是浪费的,尤其是如果他们的浏览器坚持在每个请求中都请求文件。 我不想在所有页面中都包含它的原因是性能:我不需要在所有页面中都包含它。尼尔,谢谢你的解释。 【参考方案1】:

当您使用 asp.net 时,检查服务器端是有意义的,因为您选择在其中添加对 javascript 文件的引用。从您的 .ascx 文件中,您可以注册以下内容:

this.Page.ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);

...从您的页面中,您只需直接调用 ClientScript 对象:

ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);

“GlobalUniqueKey”可以是任何字符串(我也使用 javascript 文件的 url)

如果您尝试使用相同的密钥字符串注册脚本,它不会执行任何操作。因此,如果您在您的页面、控件或其他任何地方调用它,您最终将在您的页面中只有一个引用。这样做的好处是您可以在页面上拥有多个控件实例,即使它们都尝试注册相同的脚本,但最多只能完成一次。而且他们都不需要担心脚本已经注册了。

有一个 'IsClientScriptIncludeRegistered(stringkey)' 方法,您可以使用它来查看脚本是否已包含在该键下,但在注册为多次尝试注册之前进行检查似乎非常多余,不要抛出异常或导致任何其他错误。

在客户端进行检查意味着,假设浏览器缓存了多个 javascript 引用(它们可能没有缓存),您仍然有多个标签,并且每个标签的开销都会导致一些 javascript 运行。如果您在一个页面上有 20 个控件实例,您可能会遇到严重的问题。

【讨论】:

不懂 ASP,但这看起来比我做的客户端更好。 根据您的回答,我在基本页面布尔属性“AttachJqery”、“AttachEngine”等基础上构建,它控制着附件,因此我不必弄脏代码。我还可以选择设置默认值。如果任何人需要示例将很高兴发布,请在此处发表评论。【参考方案2】:

你可以在客户端做两件事之一......

    检查与您要检查的javascript文件对应的脚本标签的dom 测试您知道已经/将在 javascript 文件中定义的变量或函数是否未定义。

这是一个快速的 JS 函数,它使用 JQuery 来做你需要的事情:

function requireOnce(url)     
    if (!$("script[src='" + url + "']").length) 
        $('head').append("<script type='text/javascript' src='" + url + "'></script>"); 
    

【讨论】:

谢谢。我使用 jQuery,那太棒了。感谢所有回答者,我一定会在未来使用它们。 一个问题是,如果 jQuery 本身是我要检查的脚本 :)【参考方案3】:

使用类似以下的内容:

if(typeof myObjectOrFunctionDecalredInThisScript != 'undefined') 
  // code goes here
  var myObjectOrFunctionDecalredInThisScript =  ;

这会测试您的对象或函数是否已经存在,从而防止重新声明。

【讨论】:

【参考方案4】:
var storePath = [];
function include(path)
if(!storePath[path])
    storePath[path]= true;
    var e = document.createElement("script");
    e.src = path;
    e.type = "text/javascript";
    document.getElementsByTagName("head")[0].appendChild(e);
    return false;
  

在您的主页中使用它并使用参数 javascript 文件名调用函数 include

【讨论】:

【参考方案5】:

因为您只想在网站的一页上包含 javascript。 如果你使用 Asp.net(4.0) 那就很简单了。 只需包含以下代码

<script type="text/javascript" scr="filepath and name here"></script>

在内容页面的ContentPlaceHolder 中。

【讨论】:

【参考方案6】:

@Shimmy 很长一段时间后我才遇到这个问题,但也许它仍然有用,或者至少可以帮助后面的其他人。要检查 jquery 是否已加载,请执行此操作

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.x.x.min.js"><\/script>')</script>

不要错过 document.write 语句中结束脚本标记中的转义字符。

@mysomic,我怎么没想到。竖起大拇指

PS:我很想在@Shimmy 写下jQuery 本身就是他想要加载的脚本的那一行写下这个。但不知道如何在那里写。看不到回复或任何类似的链接。这可能听起来很愚蠢,但也许我错过了一些东西。请指出来,有人吗?

【讨论】:

【参考方案7】:

如果您从服务器端需要它,并且 Page.ClientScript.RegisterClientScriptInclude 对您不起作用,以防脚本通过 Page.ClientScript.RegisterClientScript 以外的其他方式包含(例如 page.Header.Controls.Add( ..),你可以使用这样的东西:

static public void AddJsFileToHeadIfNotExists(Page page, string jsRelativePath)

    foreach (Control ctrl in page.Header.Controls)
    
        if (ctrl is HtmlLink htmlLink)
        
            if (htmlLink.Href.ToLower().Contains(jsRelativePath.ToLower())) return;
        
        if (ctrl is ITextControl textControl
          && (textControl is LiteralControl || textControl is Literal))
        
            if (textControl.Text.ToLower().Contains(jsRelativePath.ToLower())) return;
        
        if (ctrl is HtmlControl htmlControl)
        
            if (htmlControl.Attributes["src"]?.ToUpper()
              .Contains(jsRelativePath.ToUpper())) return;
        
    

    HtmlGenericControl Include = new HtmlGenericControl("script");
    Include.Attributes.Add("type", "text/javascript");
    Include.Attributes.Add("src", page.ResolveUrl(jsRelativePath));
    page.Header.Controls.Add(Include);    

【讨论】:

过多的转换 ctrl 是 HtmlLink,然后 ctrl 作为 Html 链接。考虑: var lnk = ctrl as HtmlLink;如果 ctrl != null 。保存演员表。

以上是关于如何判断一台Centos中是不是已安装了docker-compose?的主要内容,如果未能解决你的问题,请参考以下文章

详解如何在 CentOS 7 中安装或升级最新的内核

阿里云centos安装docker

如何判断ios中是不是安装了某个应用

(已测试成功的方案)kickstart模式实现批量安装centos7.x系统

如何判断 sdcard 是不是安装在 Android 中?

docker搭建Ambari HDP