首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >切换php版本的脚本

切换php版本的脚本
EN

Unix & Linux用户
提问于 2020-02-11 05:09:59
回答 1查看 828关注 0票数 2

我是新创建脚本命令的,我尝试制作一个脚本来切换php版本,脚本将接受我想要使用的输入版本(例如:7.3)

以下是我目前的进展:

代码语言:javascript
运行
复制
#!/bin/bash
VERSION=${1?Error: no version given}

#this is so wrong
CURRENT_VERSION = php -v

a2dismod php+CURRENT_VERSION &&
a2enmod php+VERSION &&
service apache2 restart &&

update-alternatives --set php /usr/bin/php+VERSION &&
update-alternatives --set phar /usr/bin/php+VERSION &&
update-alternatives --set phar.phar /usr/bin/phar.phar+VERSION &&
echo "success"

我还没有运行脚本,因为我仍然不知道如何将命令与变量连接起来,并获得php版本的当前版本号来禁用它。

<#>更新

编辑脚本:

代码语言:javascript
运行
复制
#!/bin/bash
VERSION=${1?Error: no version given}
CURRENT_VERSION=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')

a2dismod php"$CURRENT_VERSION" &&
a2enmod php"$VERSION" &&
service apache2 restart &&

update-alternatives --set php /usr/bin/php"$VERSION" &&
update-alternatives --set phar /usr/bin/php"$VERSION" &&
update-alternatives --set phar.phar /usr/bin/phar.phar"$VERSION" &&
echo "success"

在运行脚本时,我得到了以下错误:

代码语言:javascript
运行
复制
update-alternatives: using /usr/bin/php7.3 to provide /usr/bin/php (php) in manual mode
EN

回答 1

Unix & Linux用户

发布于 2020-02-11 06:04:11

正如劳伦斯在注释部分中已经提到的,您应该修改脚本。

在当前脚本中,CURRENT_VERSION = php -v存在一些问题。

  1. 它不应该在变量名之后有空格,否则,shell将尝试执行CURRENT_VERSION,因为它将其解释为命令而不是变量声明。
  2. 您必须用$( ... )或倒计时将命令包装起来。如果没有包装,CURRENT_VERSION将被声明但为空,那么您的命令将被执行并输出到STDOUT

它应该是CURRENT_VERSION=$(php -v),它会将命令输出存储到CURRENT_VERSION。但是您必须进行一些调整,因为php -v生成:

代码语言:javascript
运行
复制
PHP x.x.xx (cli) (built: DATE) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v.y.y.yy, Copyright (c) 1998-2018 Zend Technologies

你只需要版本号而不是上面的所有,对吗?

此外,您还必须在变量调用前加上一个美元符号$,并且可能不需要+

代码语言:javascript
运行
复制
a2dismod php"$CURRENT_VERSION" &&
a2enmod php"$VERSION" &&
service apache2 restart &&

update-alternatives --set php /usr/bin/php"$VERSION" &&
sudo update-alternatives --set phar /usr/bin/php"$VERSION" &&
sudo update-alternatives --set phar.phar /usr/bin/phar.phar"$VERSION" 
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/566884

复制
相关文章

相似问题

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