首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从主机在容器上运行脚本

从主机在容器上运行脚本
EN

Stack Overflow用户
提问于 2022-10-23 09:08:34
回答 1查看 30关注 0票数 0

我已经编写了一个脚本来执行容器中PHP服务的自动更新。在某个阶段,我检查新的PHP版本是否使用以下命令激活:

代码语言:javascript
运行
复制
echo ''| update-alternatives --config php | grep $version | grep auto | head -n 1 | tr -d ' \n\r\t '

开始时的“回声”取消了“更新-替代”命令中的交互。

$version变量是来自用户的输入(OPTARG),如果没有设置,则具有默认值。

当im试图将命令输出保存到变量时,变量在执行命令后总是被设置为null。我尝试过以下几种方法:

代码语言:javascript
运行
复制
var=$(echo ''| update-alternatives --config php | grep $version | grep auto | head -n 1 | tr -d ' \n\r\t ')

以及:

代码语言:javascript
运行
复制
var=`echo ''| update-alternatives --config php | grep $version | grep auto | head -n 1 | tr -d ' \n\r\t '`

当im不将输出重定向到变量时,命令的结果是:

代码语言:javascript
运行
复制
0/usr/bin/php8.181automode

请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2022-10-23 17:56:02

您需要逐个检查失败的命令。

(注意:我的系统只安装了一个版本的php,因此用vi代替了下面的示例。)

命令

代码语言:javascript
运行
复制
echo '' | update-alternatives --config vi | grep gtk3 | grep auto

报告

代码语言:javascript
运行
复制
{*} 0            /usr/bin/vim.gtk3    50        auto mode

所以..。我建议您的编码不考虑报告选择的格式。

而不是tr,使用

代码语言:javascript
运行
复制
awk '{ for( i=1 ; i < $NF ; i++){ if( index($i,"/") == 1 ){ print $i ; exit } ; } ; }'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74169888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档