bash - Github Actions 中的 Bash 脚本“[[: not found”
问题描述
我在 stackoverflow 上看到了一些关于 bash 脚本中的错误导致错误的帖子:
[[: not found
我已经尝试了一切来解决这个问题,但没有任何效果。
name: Node.js CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x, 12.x, 14.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: bash ./run test_ts_node
shell: bash
我找到了shell
yml 选项,但似乎没有帮助。
我的shebangs是#!/bin/bash
。
解决方案
这是Ubuntudash
上的默认设置/bin/sh
,当您尝试使用[[
bashism 时给出的消息。您的环境中有一些东西正在sh
显式或隐式调用并期望它是bash
.
在我的系统上,dash
打印脚本的名称(或者sh
如果它是一个sh -c
调用),因此查看该输出并尝试确定问题的原因可能会有所帮助。您可能还想尝试运行您的 shell 脚本,-x
看看您是否可以找出它调用的哪个命令导致了问题。日志应该向您显示导致问题的步骤,因此如果是npm ci
,那么它将在 GitHub Actions 中显示为单独的步骤,您将能够更明确地确定原因。
另请注意,Git 调用/bin/sh
,而不是/bin/bash
,因此,如果您使用调用 shell 的 Git 命令编写任何脚本,那么您需要避免在该脚本中编写 bashisms。
您的问题出在哪里并不明显,因此如果没有更多信息,我们真的无法确定您的问题出在哪里。
推荐阅读
- python - 在稀疏矩阵上调用的 np.asarray() 原样返回什么?
- amazon-web-services - AWS BatchGetItem 与 GetItem 并行
- r - R:从时间列扩展二进制值序列
- python-3.x - 按下希腊重音键(“΄”)时,Tkinter 崩溃
- python - df中所有列的值计数?
- python - 使用正则表达式删除所有包含单词的项目
- swift - 如何使用 Swift 模拟 strings.xml
- c# - 如何使用类作为用户控件属性?
- c++ - 如果使用 DFS C++ 存在障碍物,则无法找到穿过迷宫的最短路线
- java - 你能把从超类继承的受保护字段变成子类吗?