Это похоже install -D
команда на самом деле, что я хочу.
Страница справочника:
- D создают все ведущие компоненты DEST кроме последнего, затем копируют ИСТОЧНИК в DEST
Работает отлично, кроме Вас должны указать каждый файл индивидуально.
Похоже, что один из сценариев работает под /bin/sh
но использует расширенные функции удара, возможно <<<
или <(
. У Вас, по-видимому, есть пепел как /bin/sh
; это законно (и пепел в известной мере быстрее и использует меньше памяти, чем удар, который является, почему много дистрибутивов не помещают удар как /bin/sh
), но иногда Вы сталкиваетесь со сценариями, которые полагаются на удар, все же запускаются с #!/bin/sh
.
То, что Вы имеете $SHELL
набор для избиения не важен, каждый сценарий выполняется оболочкой, обозначенной на первой строке (хижина, здесь #!/bin/sh
). У меня был беглый взгляд на сценарии RVM, и он похож на все те, которые полагаются на расширения удара, правильно запускаются с #!/usr/bin/env bash
. У Вас есть предшествующее существующее ~/.rvm
? Если так, попытайтесь переместить его из пути.
Можно получить трассировку выполнения для сценария оболочки путем выполнения оболочки с -x
опция. Таким образом выполненный bash -x ./rvm
и посмотрите, где ошибка происходит. Если ошибка происходит в сценарии, названном косвенно от основного rvm
сценарий, попытка добавить set -x
в других сценариях также (сразу ниже #!
строка), для наблюдения трассировки выполнения для них. Это должно помочь определить местоположение незаконного сценария.
Ваша крошечная установка Linux Core Linux, вероятно, имеет устанавливаемую минимальную оболочку. Это, вероятно, Bitebox . Вы можете проверить это, проверив, будет ли / bin / sh
для чего-то другого:
ls -l /bin/sh
lrwxrwxrwx 1 root root 7 Dec 15 20:52 /bin/sh -> busybox
, поскольку Tiny Core Linux загружает голые минимальные ОС в ОЗУ, это желательно. Однако, если вам нужна более полнофункциональная оболочка, вы можете установить его через браузер приложений (см. Список доступных приложений , версия командной строки браузера приложений является TCE-AB
). Tiny Core Linux в настоящее время имеет: Bash
и TCSH
.
Для установки Bash:
tce-load -wi bash.tcz
Оболочка по умолчанию все еще / bin / sh
, однако вы можете порождать оболочку Bash, запущенную Bash
изнутри него.
Чтобы установить TCUSER
Оболочка по умолчанию:
which bash | sudo tee -a /etc/shells > /dev/null
sudo sed -i "/$(cat /etc/sysconfig/tcuser)/ s#:[^:]\+\$#:$(which bash)#" /etc/passwd
Вы можете также установить GNU COREUTILS
, если вы ищете больше стандартных утилит GNU для использования в Bash Скрипты также:
tce-load -wi coreutils.tcz