TinyCore Linux 和 RVM

Jus*_*tAl 7 bash ruby

我正在运行 TinyCore Linux,当我尝试安装 RVM(需要一个用于 QA 自动化的便携式 linux 发行版)时,我不断收到错误消息sh: syntax error:unexpected redirection

我不确定为什么会收到此错误,因为该echo $SHELL命令返回 BASH。

关于如何使这个工作或获得有关该问题的更多详细信息的任何想法?

Gil*_*il' 1

看起来其中一个脚本正在运行/bin/sh,但使用了 bash 的扩展功能,可能<<<是 或<(. 您可能有灰烬/bin/sh:这是合法的(并且 ash 明显比 bash 更快并且使用更少的内存,这就是为什么许多发行版不将 bash 作为/bin/sh),但偶尔您会遇到依赖 bash 但以#!/bin/sh.

您设置$SHELL为 bash 是无关紧要的,每个脚本都由第一行指示的 shell 执行(此处为shebang#!/bin/sh)。我快速浏览了 RVM 脚本,看起来所有依赖 bash 扩展的脚本都正确地以#!/usr/bin/env bash. 您之前有现有的吗~/.rvm?如果是这样,请尝试将其移开。

您可以通过使用该选项运行 shell 来获取 shell 脚本的执行跟踪-x。于是运行一下bash -x ./rvm看看哪里出错了。如果错误发生在从主rvm脚本间接调用的脚本中,请尝试添加set -x其他脚本(紧邻该#!行下方),以查看它们的执行跟踪。这应该有助于找到有问题的脚本。