- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我回显一个包含 $(hostname) 命令的字符串,那么它工作正常。例如,在终端中运行:
echo "http://$(hostname)/main.html"
http://artur/main.html
但是,如果我在尝试使用 echo 打印时从文件中获取该字符串(之前对变量执行 cat),则它不起作用:
$ cat site
http://$(hostname)/main.html
$ mysite=$(cat site)
$ echo $mysite
http://$(hostname)/main.html
我做错了什么?有什么想法吗?
最佳答案
shell 执行变量扩展 并且 shell 执行命令替换 但它不会递归地执行它们:
变量扩展的结果将不会进行任何进一步的变量扩展或命令替换.
命令替换的结果将不会进行任何进一步的变量扩展或命令替换.
这是一件好事,因为如果以递归方式完成,将会出现意想不到的结果和安全问题。
一种解决方案是使用eval
。这是一种普遍危险的方法,应视为 a last resort.
安全的解决方案是重新考虑您想要什么。特别是,您希望何时评估 hostname
?是否应该在创建 site
文件之前对其进行评估?或者,是否应该在代码最终运行时对其进行评估?后者似乎是您想要的。
如果是这种情况,请考虑这种方法。将 %s
放入您希望主机名所在的 site
文件中:
$ cat site
http://%s/main.html
当你读取site
文件时,使用printf
替换主机名:
$ mysite=$(printf "$(cat site)" "$(hostname)")
$ echo "$mysite"
http://artur/main.html
对于 bash,上述形式的替代方法是:
$ printf -v mysite "$(< site)" "$HOSTNAME"
$ echo "$mysite"
http://artur/main.html
关于Bash 无法回显嵌入变量中的 $(hostname),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39360485/
无法启动 hostname.service:单元 hostname.service 被屏蔽。 这发生在主机名更新之后,尝试执行 sudo 服务主机名启动。 最佳答案 在运行 service hostn
我基于vmware搭建hadoop集群,使用sbin/start-dfs.sh命令,遇到ssh问题。它说, ssh: Could not resolve hostname now.: No addre
我在两个 AWS EC2 实例上运行的集群环境中运行 Airflow。一份给主人,一份给 worker 。工作节点在运行“$airflow worker”时会定期抛出此错误: [2018-08-09
我现在正在设置新的 SuSE Linux Enterprise 12 服务器。有人可以解释一下,/etc/hostname 和 yast2 > 主机名之间有什么区别?两者似乎都有不同的内容,一个地方的
我正在尝试使用 Go SDK 将文件上传到 Amazon S3 存储桶到自定义终端节点,但我收到了该错误: RequestError: send request failed caused by: P
从 cloud.mongodb 处理 URI 后,我尝试通过 compass 进行连接(1.15.1) 在 Windows 10 上,但我收到这个奇怪的错误: No hostname or hostn
我尝试部署了一个测试hadoop集群环境。当我启动它时,所有日志都正确,但是无法运行任何hadoop命令,我发现9000端口没有被监听。 运行hadoop命令(ERROR,所有命令都是一样的错误):
在 Linux 上启动为 Apache Solr 4.x 配置的 tomcat6 服务时,如果有人可以帮助解决在 catalina.out 中记录的这个问题,我将不胜感激: Mar 22, 2014
我有一个本地网络,上面有几台 PC 和专用 Controller 。这些专用 Controller 必须配置静态 IP 地址,并且不具备 DHCP 功能。 我被要求将设备主机名和 IP 地址的列表放在
我正在使用 puppet 来配置服务器。我想在 *.erb 模板中打印当前机器(节点)名称。有主机名变量,但这包含 puppetmaster 主机名。是否有关于此主题的任何好的引用/列表? 最佳答案
我对这些概念 super 陌生,如果这很愚蠢,我深表歉意。我正在尝试使用Elasticsearch数据源在Grafana上可视化Metricbeat数据,这些数据源均在本地运行,但无法找到Metric
假设我有一个具有以下属性的虚拟机 FQDN :trialinstance.westus.cloudapp.azure.com Public IP : XXX.XXX.XXX.XXX Private I
假设我有一个具有以下属性的虚拟机 FQDN :trialinstance.westus.cloudapp.azure.com Public IP : XXX.XXX.XXX.XXX Private I
在 CLI Linux 中我运行: echo $HOSTNAME 并接收: alex-HP-295-G1-SFF-Business-PC 我尝试在java中获取这个环境 ExpressionPa
如果我回显一个包含 $(hostname) 命令的字符串,那么它工作正常。例如,在终端中运行: echo "http://$(hostname)/main.html" http://artur/mai
我想写一个C++代码来获取所有主机名的完整信息,以及已添加到域控制的计算机的IP地址和子网掩码。 最佳答案 gethostname 会给你当前主机的名字 gethostbyname 查找具有特定名称的
在 CLI 模式下 getenv('HOSTNAME') 正确返回 HOSTNAME 环境变量,但在脚本中调用时返回 FALSE。 为什么?如何在脚本中获取 HOSTNAME 变量? 最佳答案 HOS
本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ;另外对基配具工具hostname也进行了举例说明; 欢迎高手斧正,谢谢; 目录
需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常。首先切换到root用户。 复制代码
使用Win7,Gitolite和TortoiseGIT 今天,我将GIT更新为2.6.1版,因此必须卸载旧版本。 很久以前,我创建了一个ssh-config文件,以更轻松地访问我的存储库,并且从今天开
我是一名优秀的程序员,十分优秀!