我正在运行 TinyCore Linux,当我尝试安装 RVM(需要一个用于 QA 自动化的便携式 linux 发行版)时,我不断收到错误消息sh: syntax error:unexpected redirection
。
我不确定为什么会收到此错误,因为该echo $SHELL
命令返回 BASH。
关于如何使这个工作或获得有关该问题的更多详细信息的任何想法?
看起来其中一个脚本正在运行/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
其他脚本(紧邻该#!
行下方),以查看它们的执行跟踪。这应该有助于找到有问题的脚本。