shell test:-v:需要一元运算符

3df52oht  于 2023-02-13  发布在  Shell
关注(0)|答案(1)|浏览(191)

我尝试通过“github操作”运行这样的代码

- name: Run tests
        run: |
          set -e
          ...
          test -v A || export B=42
        shell: bash

并在test -v A || export B=42行得到错误:

test: -v: unary operator expected

我不知道这是怎么回事,如果我在我的本地bash中运行这个命令,所有的工作都如预期,我的yaml代码中的“github操作”是什么错误?

yfwxisqw

yfwxisqw1#

您的测试是否碰巧在macOS CI环境下运行?test -v测试是否设置了变量,但它仅在Bash 4.2中添加。
默认情况下,macOS自带Bash 3.2,如果无法将-v识别为一元运算符,则会出现此错误。
要修复此问题,您可以安装最新的Bash,或使用different approach测试是否存在:

[ -z "${A+x}" ] && export B=42

相关问题