设置变量时找不到bash命令

 浪子烦恼猪_309 发布于 2022-12-18 15:18

我正在编写一个shell脚本,我设置的变量很少,其值是命令的输出.

我得到的错误是:

$  $tag_name="proddeploy-$(date +"%Y%m%d_%H%M")"
-bash: =proddeploy-20141003_0500: command not found

现在,我确实阅读了其他类似的问题并在此基础上尝试了各种各样的事情:

将命令分成两个调用

$ $deploy_date=date +"%Y%m%d_%H%M"
bash: =date: command not found
$ $tag_name="proddeploy-$deploy_date"
bash: proddeploy- command not found

尝试使用反引号

$ $tag_name=`proddeploy-$(date +"%Y%m%d_%H%M")`
bash: proddeploy-20141003_1734: command not found
bash: =: command not found

试过用 $()

$ $tag_name=$(proddeploy-$(date +"%Y%m%d_%H%M"))
bash: proddeploy-20141003_1735: command not found
bash: =: command not found

但在每种情况下,命令输出都会被执行.如何让它停止执行命令输出并只存储为变量?我需要这个在ZSH和BASH上工作.

1 个回答
  • var=stringor 定义变量var=$(command).

    所以你必须删除领先$和任何其他迹象=:

    tag_name="proddeploy-$(date +"%Y%m%d_%H%M")"
    
    deploy_date=$(date +"%Y%m%d_%H%M")
                ^^                   ^
    

    从命令替换:

    `COMMAND`对于Bash,第二种形式或多或少已经过时,因为它在嵌套方面存在一些问题("内部"反引号需要被转义)和转义字符.使用$(COMMAND),它也是POSIX!

    此外,$()允许您嵌套,这可能很方便.

    2022-12-18 15:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有